用户在输入之前,如何为AutoCompleteTextView显示一些默认建议?即使创建一个扩展AutoCompleteTextView的自定义类,我也找不到这样做的方法。
我想显示常见输入值的建议,以节省用户的输入时间。
有什么建议吗?
用户在输入之前,如何为AutoCompleteTextView显示一些默认建议?即使创建一个扩展AutoCompleteTextView的自定义类,我也找不到这样做的方法。
我想显示常见输入值的建议,以节省用户的输入时间。
有什么建议吗?
AutoCompleteTextView
的子类,并重写enoughToFilter()
方法,使其始终返回true
。之后,你可以调用performFiltering("",0)
方法(它是受保护的,所以你可以通过在你的类中公开一个函数来导出此调用)。public class ContactsAutoCompleteTextView extends AutoCompleteTextView {
public ContactsAutoCompleteTextView(Context context) {
super(context);
}
public ContactsAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ContactsAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean enoughToFilter() {
return true;
}
public void temp() {
performFiltering("",0);
}
}
@Override
protected void onFocusChanged (boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
performFiltering("", 0);
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
public class CountriesActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView)
findViewById(R.id.countries_list);
textView.setAdapter(adapter);
}
private static final String[] COUNTRIES = new String[] {
"Belgium", "France", "Italy", "Germany", "Spain"
};
}
可以在http://developer.android.com/reference/android/widget/AutoCompleteTextView.html找到。
另一种方法是使用数据库连接和简单的游标,让它从用户那里学习。创建数据库时,您可以插入一些默认值。以下是使用简单游标适配器的示例:http://androidcommunity.com/forums/f4/how-to-use-autocompletetextview-with-simplecursoradapter-15875/
编辑1:
一个显示列表的想法是在EditText下面放置一个简单的ListView。不确定是否可以调用autocompletetextview来显示建议,但应该有可能。也许您需要创建自己的autocompletetextiew类。