如何在用户输入任何内容之前显示AutoCompleteTextView的一些默认建议?即使创建扩展AutoCompleteTextView的自定义类,我也找不到这样做的方法 .
我想显示常见输入值的建议,以防止用户输入 .
有什么建议?
Itay Kahana的答案确实是正确的 . 我唯一要补充的是,不是创建一个temp()函数,而是覆盖onFocusChanged函数 . 我个人用过以下内容:
@Override protected void onFocusChanged (boolean focused, int direction, Rect previouslyFocusedRect) { if(focused) performFiltering("", 0); super.onFocusChanged(focused, direction, previouslyFocusedRect); }
您应该子类 AutoCompleteTextView 并覆盖 enoughToFilter() 以始终返回 true . 之后你可以调用 performFiltering("",0) (这是一个受保护的函数,所以你可以通过你 class 的公共函数导出这个调用) .
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); } }
如果你不需要它是动态的,我会在资源中使用字符串数组,然后在即将查看AutoCompleteTextView时加载数组 . 喜欢:
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找到
我已经做过几次允许它向用户学习的另一种方法是使用与IE简单光标的数据库连接 . 创建数据库时,可以插入一些默认值 . 以下是使用简单游标适配器的示例:http://androidcommunity.com/forums/f4/how-to-use-autocompletetextview-with-simplecursoradapter-15875/
编辑1:
在用户开始输入之前显示列表的一个想法是在EditText下面有一个简单的列表视图 . 不确定是否可以调用autocompletetextview来显示建议,应该可能以某种方式 . 也许您需要创建自己的autocompletetextiew类 .
3 回答
Itay Kahana的答案确实是正确的 . 我唯一要补充的是,不是创建一个temp()函数,而是覆盖onFocusChanged函数 . 我个人用过以下内容:
您应该子类
AutoCompleteTextView
并覆盖enoughToFilter()
以始终返回true
. 之后你可以调用performFiltering("",0)
(这是一个受保护的函数,所以你可以通过你 class 的公共函数导出这个调用) .像这样的东西:
如果你不需要它是动态的,我会在资源中使用字符串数组,然后在即将查看AutoCompleteTextView时加载数组 . 喜欢:
哪个可以在http://developer.android.com/reference/android/widget/AutoCompleteTextView.html找到
我已经做过几次允许它向用户学习的另一种方法是使用与IE简单光标的数据库连接 . 创建数据库时,可以插入一些默认值 . 以下是使用简单游标适配器的示例:http://androidcommunity.com/forums/f4/how-to-use-autocompletetextview-with-simplecursoradapter-15875/
编辑1:
在用户开始输入之前显示列表的一个想法是在EditText下面有一个简单的列表视图 . 不确定是否可以调用autocompletetextview来显示建议,应该可能以某种方式 . 也许您需要创建自己的autocompletetextiew类 .