我有一个立即专注的Searchview(客户想要这个)。搜索balk中的文字始终是带有文本搜索提示的图标玻璃!
如何更改文字?
我试过
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setQueryHint("TEST");
然后文本显示真实,然后更改回默认的android。
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:visible="false"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom" />
编辑:
这是我的创作:
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
menu.findItem(R.id.action_beneficiaries).setVisible(false);
menu.findItem(R.id.action_search).setVisible(query == null);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
if (query == null) {
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView()
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
}
}
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// called from menu
if (getCallingActivity() == null) {
menu.findItem(R.id.action_accounts).setVisible(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
menu.findItem(R.id.action_transaction).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
} else {
menu.findItem(R.id.action_transaction).setVisible(false);
}
} else {
// called from New Transaction
menu.findItem(R.id.action_transaction).setVisible(false);
}
return super.onPrepareOptionsMenu(menu);
}
答案 0 :(得分:2)
根据您的xml,您正在使用支持库。因此,您需要使用以下内容检索项目:
MenuItem searchItem = (MenuItem) menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
然后,您可以使用searchView.setQueryHint()
更改提示的文本,甚至可以使用setHintTextColor
更改其颜色。