Android 如何防止SearchView自动清除搜索的文本 正常行为: 当我在ActionBar上的SearchView小部件中请求搜索时,在 单击软键盘的搜索操作按钮,输入文本为 已从搜索视图中清除 我想要的行为: 我希望在执行搜索时,我的输入文本保持不变。这怎么可能
我读过的官方文件,和指南,还有,但没有任何运气 编辑: 我发现每当我滚动我的ViewPager时都会发生此文本重置。尝试以下操作:Android 如何防止SearchView自动清除搜索的文本 正常行为: 当我在ActionBar上的SearchView小部件中请求搜索时,在 单击软键盘的搜索操作按钮,输入文本为 已从搜索视图中清除 我想要的行为: 我希望在执行搜索时,我的输入文本保持不变。这怎么可能,android,android-actionbar,searchview,Android,Android Actionbar,Searchview,我读过的官方文件,和指南,还有,但没有任何运气 编辑: 我发现每当我滚动我的ViewPager时都会发生此文本重置。尝试以下操作: mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { mSearchVi
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextSubmit(String query)
{
mSearchView.setQuery(query,false);
return false;
}
@Override
public boolean onQueryTextChange(String newText)
{
return false;
}
});
如果您的搜索小部件调用另一个活动来处理查询,它将被清除,因为该活动是新创建的 因此,您需要从两个位置手动设置查询:
用于初始化搜索小部件onCreateOptions菜单
接收查询的位置onNewIntent
onNewIntent
将首先被调用,并且搜索小部件尚未准备好使用。在这种情况下,将查询保存在onNewIntent
并将其设置在oncreateoptions菜单上。否则可直接设置为onNewIntent
下面是一个例子:
private String mQuery;
private SearchView mSearchView;
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mQuery = intent.getStringExtra(SearchManager.QUERY);
if (mSearchView != null) {
mSearchView.setQuery(mQuery, false);
}
// Do something with the new query
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the actionbar items
getMenuInflater().inflate(R.menu.actionbar_items, menu);
// Get SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
mSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
// Disable collapsing the search widget
mSearchView.setIconifiedByDefault(false);
// Set the query
mSearchView.setQuery(mQuery, false);
return true;
}
通常情况下,除非您这样做,否则文本不会被清除。您的小部件是否调用另一个活动来处理查询?@user3249477没有我的“sngle top”活动来处理意图本身。为我工作。我正在使用appcompat.v7.SearchView,在提交时我折叠了菜单项。每当我执行新的搜索时,文本将被清除,适配器过滤器也将被删除。我强烈建议使用AppCompat SearchView