我目前正在使用该AutocompleteTextView
组件实现一个自动完成字段。
我正在尝试添加带有结果数量的完成提示,并且只想将其样式设置为与下拉列表元素不同。组件上有一个名为的属性completionHintView
,但每次我给它一个我之前定义的布局时,它都会抛出一个NullPointerException
.
有没有人有一个关于如何设置完成提示样式的工作示例?
我目前正在使用该AutocompleteTextView
组件实现一个自动完成字段。
我正在尝试添加带有结果数量的完成提示,并且只想将其样式设置为与下拉列表元素不同。组件上有一个名为的属性completionHintView
,但每次我给它一个我之前定义的布局时,它都会抛出一个NullPointerException
.
有没有人有一个关于如何设置完成提示样式的工作示例?
您能否详细说明您正在寻求应用哪种样式?
如果它只是基本的文本样式,您可能可以构建 aSpannable
并使用结果设置完成提示,因为它接受 a CharSequence
。这篇文章中展示了一个构建Spannable
和应用样式的示例。
如果您正在寻找一种方法来实际操纵参数TextView
(例如填充),源代码AutoCompleteTextView
似乎提供了一个提示(双关语)。
private View getHintView(Context context) {
if (mHintText != null && mHintText.length() > 0) {
final TextView hintView = (TextView) LayoutInflater.from(context).inflate(
mHintResource, null).findViewById(com.android.internal.R.id.text1);
hintView.setText(mHintText);
hintView.setId(HINT_VIEW_ID);
return hintView;
} else {
return null;
}
}
这表明 Androidtext1
在您指定的资源引用中查找 id。这种资源的最基本版本将只包含TextView
具有此 ID 的 a:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:padding="10dp"
android:textColor="#FF0000" android:textSize="16sp" />
将上面保存在布局文件(例如completion_hint_view.xml
)中,并从您的以下引用它AutoCompleteTextView
:
<AutoCompleteTextView android:id="@+id/autocomplete_textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionHintView="@layout/completion_hint_view"/>
第二个选项可能是最容易使用的,并且可以让您完全访问 TextView 的参数。如果您需要将多种样式应用到此视图中的文本,您可以合并第一个建议,因为这将为您提供更大的灵活性。
如果这些建议都不够,我可以想到一些不太优雅的解决方法,可能会让你得到相同的结果。