在用到searchView时,每当输入文本进行搜索时,界面都会弹出一个类似toast的东西。
由于源码没怎么看明白,只能解释的很浅显啦!!!
产生原因:
为searchview设置监听(setOnQueryTextListener),需要实现onQueryTextChange()方法。
public boolean onQueryTextChange(String s){
if(TextUtils.isEmpty(s)}{
listview.clearTextFilter();
}else{
listview.setFilterText(s);
}
return true;
}
listview.setFilterText(s);这个方法是调用filter过滤数据来刷新listview。此方法也让屏幕上有一个黑框(底层代码怎么跑的没看明白)。解决办法就是不跑这个方法,用别的方法实现listview数据的更新。
比如:
public boolean onQueryTextChange(String s){
//这两个都是自定义的方法
Object[] obj=searchItem(s);//实现对应s字符串的搜索,并将结果放置到obj中。
updateListView(obj);//通知listView进行更新。
return true;
}
我是从这个例子明白的:http://www.linuxidc.com/Linux/2013-06/85499p2.htm