gpt4 book ai didi

java - 单击返回时在 SearchView 中重置搜索

转载 作者:行者123 更新时间:2023-11-30 09:07:48 25 4
gpt4 key购买 nike

我添加了搜索菜单项来过滤我的列表。过滤和重置过滤器一切正常。但是当用户单击后退按钮时,我找不到重置过滤器的方法。实际上,当用户在搜索字段中添加一些文本时,第一次后退单击将隐藏键盘,第二次单击将折叠搜索字段并删除我的搜索文本......但列表仍然被过滤。我应该怎么做才能重置列表?

@Override
public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search_menu, menu);

searchMenuItem = menu.findItem(R.id.action_search);
SearchView mSearchView = (SearchView) MenuItemCompat.getActionView(searchMenuItem);

if (mSearchView != null) {
mSearchView.setIconifiedByDefault(true);
mSearchView.setOnQueryTextListener(this);
}
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onQueryTextChange(String s) {
refreshSearch(s);
return false;
}

private void refreshSearch(String s) {
FragmentManager fm = getSupportFragmentManager();
MyListFragment listFragment = (MyListFragment)fm.getFragments().get(0);
MyArrayAdapter arrayAdapter = (MyArrayAdapter)listFragment.getListAdapter();
arrayAdapter.getFilter().filter(s);
}

通过添加一些额外的代码来编辑我的问题,这可能有助于了解原因

@Override
public boolean onQueryTextSubmit(String s) {
hideKeyboard();
return false;
}
@Override
public boolean onQueryTextChange(String s) {
refreshSearch(s);
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
return true;
default:
return false; //return super.onOptionsItemSelected(item);
}
}

最佳答案

我通过这样做解决了问题:

searchMenuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {

@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}

@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
refreshSearch("");
return true;
}
});

关于java - 单击返回时在 SearchView 中重置搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23843910/

25 4 0
文章推荐: Java EE 部署问题
文章推荐: javascript - 在运行时创建一个
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com