2015-01-15 92 views
-1

我想问你一些指针,寻找我的问题的解决方案,因为谷歌搜索过去几个小时没有帮助。SearchView也被“隐藏”关键字的ListView搜索

我有一个SearchViewExpandableListView和一切工作正常。 对于我的每一个列表(String s)我想添加不会显示的关键字,但可以搜索。

例如,如果我们有水果的清单:

-Apple 
-Banana 
-Orange 

...

我想将它们分配隐藏关键字,如:

-Apple (healthy) 
-Banana (tasty) 
-Orange (sour) 

所以,当我键入进入我的SearchView:“健康”,它只会显示苹果。

我的一些代码(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); 

    ... 
+0

这是一个问题类:'水果{name,attr}'伪代码:'List searchByNameOrAttr(List input,string lookingFor){return input.selectAll(x => x.name.similarTo(lookingFor)|| || x.attr.similarTo(lookingFor)); }'similarTo可以是startsWith或contains和'x => x.name ...'意思是比较器实现 – Selvin 2015-01-15 17:55:56

回答

0

search.setOnQueryTextListener(本);

你需要显示你的实现。基本上,它将被称为此功能:

@Override public boolean onQueryTextSubmit(String query){ 
    // IMPLEMENT HERE 
} 

而这就是你要处理的地方。而不是仅仅根据名称来检查查询,您还需要检查“隐藏”关键字,这可能在Fruit类中。