Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从MenuItem获取SearchView将返回View而不是SearchView_Android_Menuitem_Searchview - Fatal编程技术网

Android 从MenuItem获取SearchView将返回View而不是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

我正试图从一个片段中的工具栏获取我的SearchView

我正在OnCreateOptions菜单中插入一个菜单项

问题:searchItem.getActionView()返回“视图”而不是“SearchView”。请参阅下面的代码

@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();