gpt4 book ai didi

java - SearchView 主题更改

转载 作者:行者123 更新时间:2023-12-01 11:32:51 27 4
gpt4 key购买 nike

我的搜索 View 有问题。

我有 2 个主题,当我第一次接触 searchview 时,我得到了丑陋的第一张图片。但是当我再次进入搜索 View 时,我从第二张图片中得到了很好的主题。

我总是想走第二种路...知道为什么会发生这种情况吗?

这是我初始化搜索 View 的代码:

private void setupSearchView(MenuItem searchItem) {
searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM
| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);

MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchItem.getActionView();
setupSearchView(searchItem);
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
startSearch(null,true,null,false);
return false;
}

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

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

return true;
}

谢谢!

enter image description here enter image description here

编辑

在@huaming的帮助下,我编辑了我的代码。现在它就像一个魅力:)

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId) {
case R.id.search:
onSearchRequested();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

在我的 onCreateOptionsMenu(Menu menu) 中我必须编辑,因为我想在 Bundle 中发送自定义值,以便我的 SearchActivity 来管理它。

final SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
MenuItem searchItem = menu.findItem(R.id.action_search);
//mSearchView = (SearchView) searchItem.getActionView();
mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

setupSearchView(searchItem);
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
Bundle b = new Bundle();
final SharedPreferences prefs = getSharedPreferences("pref", Context.MODE_PRIVATE);
int somevalue = prefs.getInt("value", 0);
b.putInt("value", somevalue);
searchManager.startSearch("", true, searchManager.getGlobalSearchActivity(), b, false);
return false;
}

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

最佳答案

你有下面的代码吗?尝试删除代码onSearchRequested();

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId) {
case R.id.search:
onSearchRequested();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

关于java - SearchView 主题更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30276822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com