搜索数据库中的项目并显示下拉列表

Dro*_*man 2 android android-sqlite android-search

我有以下应用程序架构(为简化而推广):

main LayoutActionBar自定义View和可滚动Tabs以及ViewPager托管多个组成ListFragments.每个ListFragment都有自己的数据集(1行= ImageView+ TextView),从SQLite数据库加载.在我的ActionBar's自定义中View有一个"搜索" EditText.

当用户开始输入内容时,我想在数据库中执行"移动中"搜索,并以下拉列表的形式显示匹配的名称(这些名称应该是可点击的).我看到了一些如何在a中执行搜索的示例ListView,但与数据库搜索无关.

所以问题是:如何将数据库搜索结果显示为下拉列表,并在用户添加或删除字符时随时刷新它?

gsb*_*gsb 9

您需要实现AutoCompleteTextView.这允许在用户键入时提供建议.您可以使用适配器绑定要搜索的数据.

这应该可以解决您的问题.

可以在此处找到可能有用的示例.


Sco*_*ott 5

您可以实现该OnQueryTextListener()接口并重写该onQueryTextChange(String text)方法 - 该方法在字符更改时被调用。就像是

searchTextInstance.setOnQueryTextListener(new CustomQueryListener());
Run Code Online (Sandbox Code Playgroud)

onQueryTextChange(Sting text)查询您的数据库然后调用

CustomAdapter adapter = new CustomAdapter()
//... populate the adapter with the query results and call
searchTextInstance.setSuggestionAdapter(adapter)
Run Code Online (Sandbox Code Playgroud)

其中 CustomAdapter 是扩展 SimpleCursorAdapter 的类,此实例由查询结果填充(要在下拉菜单中显示的结果)。

要使选择可点击,您可以将自定义 OnSuggestionListener() 设置为您的searchTextInstance,即

searchTextInstance.setOnSuggestionListener(new CustomSuggestionListener());
Run Code Online (Sandbox Code Playgroud)

其中CustomSuggestionListener实现OnSuggestoinListener- 接口的唯一方法,onSuggestionClick(int postion)将实现您的目标