Android 从MenuItem获取SearchView将返回View而不是SearchView
我正试图从一个片段中的工具栏获取我的SearchView 我正在OnCreateOptions菜单中插入一个菜单项 问题:searchItem.getActionView()返回“视图”而不是“SearchView”。请参阅下面的代码Android 从MenuItem获取SearchView将返回View而不是SearchView,android,menuitem,searchview,Android,Menuitem,Searchview,我正试图从一个片段中的工具栏获取我的SearchView 我正在OnCreateOptions菜单中插入一个菜单项 问题:searchItem.getActionView()返回“视图”而不是“SearchView”。请参阅下面的代码 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){ inflater.inflate(R.menu.menu_search, menu); fin
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
inflater.inflate(R.menu.menu_search, menu);
final MenuItem searchItem = menu.findItem(R.id.search);
SearchView searchView = searchItem.getActionView(); // This one is red - "returns View, should return Searchview"
}
菜单项的XML(menu_search.XML):
试试这个:
MenuItem search = menu.findItem(R.id.search);
SearchView searchView = (SearchView) search.getActionView();
是的,
getActionView()
返回View
,为什么要返回SearchView
?您可以将任何视图设置为“动作视图”,不是吗?但动作视图与actionViewClass不一样吗?然后应该返回一个SearchView?如果没有-如何从工具栏中获取此SearchView菜单项?请参阅下面的答案-通过简单的castOk,因此它必须转换为SearchView。谢谢公认的答案
MenuItem search = menu.findItem(R.id.search);
SearchView searchView = (SearchView) search.getActionView();