Dro*_*man 2 android android-sqlite android-search
我有以下应用程序架构(为简化而推广):
main Layout由ActionBar自定义View和可滚动Tabs以及ViewPager托管多个组成ListFragments.每个ListFragment都有自己的数据集(1行= ImageView+ TextView),从SQLite数据库加载.在我的ActionBar's自定义中View有一个"搜索" EditText.
当用户开始输入内容时,我想在数据库中执行"移动中"搜索,并以下拉列表的形式显示匹配的名称(这些名称应该是可点击的).我看到了一些如何在a中执行搜索的示例ListView,但与数据库搜索无关.
所以问题是:如何将数据库搜索结果显示为下拉列表,并在用户添加或删除字符时随时刷新它?
您可以实现该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)将实现您的目标