android autocompletetextview 应仅在下拉列表中显示相关选项
我在代码中使用 AutoCompleteTextView 并使用 SimpleCursorAdapter 从数据库加载列表。
AutoCompleteTextView cocktailIngredientView = (AutoCompleteTextView) findViewById(R.id.item);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, mCursor,
new String[] { "field" },
new int[] { android.R.id.text1 });
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cocktailIngredientView.setAdapter(adapter);
cocktailIngredientView.setThreshold(0);
它正确填充列表,但我有两个问题:
- 我希望对该列表进行排序
- 无论我输入什么,它都会显示完整的列表。我希望它根据列表中的匹配模式进行过滤。例如,如果列表包含值“页面”、“工具”...那么如果我在框中输入 T,则下拉列表应仅显示“工具”。这个想法是显示在字符串文本中的任何位置包含输入模式的选项。
这怎么能做到呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须告诉适配器要显示哪些项目。我尝试使用
FilterQueryProvider
< 来实现类似的东西/a> 在数据库中查询我想要在下拉列表中显示的项目。至于当你在列表中选择一个项目时的情况,你必须重写 SimpleCursorAdapter 的
CursorToStringConverter
。像这样的东西:You have to tell the adapter what items to display. I tried implementing something similar to this by using a
FilterQueryProvider
that queries the database for the items that I want to display in the dropdown.As for the situation when you select an item on the list, you have to override the
CursorToStringConverter
of theSimpleCursorAdapter
. Something like:除了
CursorToStringConverter
您也可以使用Instead of the
CursorToStringConverter
you could also use