使用SearchView自定义搜索实现

我想在我的应用中实现搜索,但我不想使用单独的Activity来显示我的搜索结果。 相反,我只想使用SearchView下方显示的建议SearchView

我可以在SearchView上使用setOnQueryTextListener ,监听输入并搜索结果。 但是,如何将这些结果添加到SearchView下面的列表中? 我们假设我正在List

您需要创建的是内容提供商 。 通过这种方式,您可以向SearchView添加自定义结果,并在用户输入内容时为其添加自动完成function。

如果我不记得错误,在我的一个项目中我做了类似的事情,并且不需要太长时间。

我相信这可能会有所帮助: 将AutoCompleteTextView转换为ActionBar中的SearchView

还有: SearchManager – 添加自定义建议

希望这可以帮助。

N.

我已经使用带有搜索字符串的EditText在我的应用程序中实现了搜索。
在这个EditText下面,我有我想要执行搜索的ListView。

     

搜索EditText下面的列表根据在EditText中输入的搜索文本而变化。

 etSearch = (EditText) findViewById(R.id.searchInput); etSearch.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { searchList(); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } }); 

函数searchList()进行实际搜索

  private void searchList() { String s = etSearch.getText().toString(); int textlength = s.length(); String sApp; ArrayList appsListSort = new ArrayList(); int appSize = list.size(); for (int i = 0; i < appSize; i++) { sApp = list.get(i); if (textlength <= sApp.length()) { if (s.equalsIgnoreCase((String) sApp.subSequence(0, textlength))) { appsListSort.add(list.get(i)); } } } list.clear(); for (int j = 0; j < appsListSort.size(); j++) { list.add(appsListSort.get(j)); } adapter.notifyDataSetChanged(); } 

这里的list是ListList,它显示在ListView中, adapter是ListView适配器。
我希望这能以某种方式帮助你。