ListView 中的 SearchView 也可以通过 "hidden" 个关键字进行搜索
SearchView in ListView search also by "hidden" keywords
我想请您指点一下在哪里可以找到我的问题的解决方案,因为谷歌搜索过去几个小时没有帮助。
我有 SearchView
和 ExpandableListView
,一切正常。
对于我的每个列表 (String
s),我想添加不会显示但可搜索的关键字。
例如,如果我们有一个水果列表:
-Apple
-Banana
-Orange
...
我想为他们分配隐藏的关键字,例如:
-Apple (healthy)
-Banana (tasty)
-Orange (sour)
所以当我输入 SearchView
: "healthy" 时,它只会显示 Apple。
我的一些代码(SearchView
):
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
search = (SearchView) findViewById(R.id.search);
search.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
search.setIconifiedByDefault(false);
search.setOnQueryTextListener(this);
search.setOnCloseListener(this);
和ArrayList
:
ArrayList<Fruit> fruitList = new ArrayList<Fruit>();
Fruit fruit = new Fruit("Apple", R.drawable.apple);
fruitList.add(fruit);
fruit = new Fruit("Orange", R.drawable.orange);
fruitList.add(fruit);
fruit = new Fruit("Banana", R.drawable.banana);
fruitList.add(fruit);
Basket basket = new Basket("Yes",basketList);
basketList.add(basket);
fruitList = new ArrayList<Fruit>();
Fruit fruit = new Fruit("Peach", R.drawable.peach);
fruitList.add(fruit);
fruit = new Fruit("Pineapple", R.drawable.pineapple);
fruitList.add(fruit);
fruit = new Fruit("Coconut", R.drawable.coconut);
fruitList.add(fruit);
Basket basket = new Basket("No",basketList);
basketList.add(basket);
...
search.setOnQueryTextListener(这个);
您需要展示您的实现。基本上,它会调用这个函数:
@Override public boolean onQueryTextSubmit(String query){
// IMPLEMENT HERE
}
这就是你处理事情的地方。您不仅要根据名称检查查询,还要检查 "hidden" 关键字,这些关键字可能在 Fruit class.
中
我想请您指点一下在哪里可以找到我的问题的解决方案,因为谷歌搜索过去几个小时没有帮助。
我有 SearchView
和 ExpandableListView
,一切正常。
对于我的每个列表 (String
s),我想添加不会显示但可搜索的关键字。
例如,如果我们有一个水果列表:
-Apple
-Banana
-Orange
...
我想为他们分配隐藏的关键字,例如:
-Apple (healthy)
-Banana (tasty)
-Orange (sour)
所以当我输入 SearchView
: "healthy" 时,它只会显示 Apple。
我的一些代码(SearchView
):
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
search = (SearchView) findViewById(R.id.search);
search.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
search.setIconifiedByDefault(false);
search.setOnQueryTextListener(this);
search.setOnCloseListener(this);
和ArrayList
:
ArrayList<Fruit> fruitList = new ArrayList<Fruit>();
Fruit fruit = new Fruit("Apple", R.drawable.apple);
fruitList.add(fruit);
fruit = new Fruit("Orange", R.drawable.orange);
fruitList.add(fruit);
fruit = new Fruit("Banana", R.drawable.banana);
fruitList.add(fruit);
Basket basket = new Basket("Yes",basketList);
basketList.add(basket);
fruitList = new ArrayList<Fruit>();
Fruit fruit = new Fruit("Peach", R.drawable.peach);
fruitList.add(fruit);
fruit = new Fruit("Pineapple", R.drawable.pineapple);
fruitList.add(fruit);
fruit = new Fruit("Coconut", R.drawable.coconut);
fruitList.add(fruit);
Basket basket = new Basket("No",basketList);
basketList.add(basket);
...
search.setOnQueryTextListener(这个);
您需要展示您的实现。基本上,它会调用这个函数:
@Override public boolean onQueryTextSubmit(String query){
// IMPLEMENT HERE
}
这就是你处理事情的地方。您不仅要根据名称检查查询,还要检查 "hidden" 关键字,这些关键字可能在 Fruit class.
中