我开发了一个应用程序,其中有一个位于操作栏中的搜索视图,当我进行搜索时,它可以完美地过滤数据,但当我按下返回按钮时,它仍然显示已过滤的数据。我的问题是:操作栏搜索视图的返回按钮事件是什么?
我的搜索视图代码如下:
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(Menus.SEARCH));
searchView.setQueryHint(this.getString(R.string.search));
editSearch = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
editSearch.setHintTextColor(getResources().getColor(R.color.white));
searchView.setOnQueryTextListener(OnQuerySearchView);
private OnQueryTextListener OnQuerySearchView = new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String newText) {
if (TextUtils.isEmpty(newText)) {
listAllContact.clearTextFilter();
} else {
listAllContact.setFilterText(newText.toString());
}
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
String text = editSearch.getText().toString()
.toLowerCase(Locale.getDefault());
adapter.filter(text);
return true;
}
};
适配器中的过滤方法
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
propertyList.clear();
if (charText.length() == 0) {
propertyList.addAll(arrayList);
notifyDataSetChanged();
} else {
for (ContactProperty p : arrayList) {
if (p.getFriendName().toLowerCase(Locale.getDefault())
.contains(charText)) {
propertyList.add(p);
}
}
notifyDataSetChanged();
}
SearchView
?我不得不使用setOnSearchClickListener
和setOnCloseListener
作为替代方案:https://stackoverflow.com/a/56410389/7767664 - user924