尝试在操作栏中包含搜索查看.为此,我做了以下事情:
在菜单文件夹中创建了MenuSearch.xml,如下所示:
android:id="@+id/action_search"
android:actionViewClass="Android.Support.V7.Widget.SearchView"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="always"
android:title="Search"/>
包含片段中的OnCreateOptionsMenu方法:
public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
{
inflater.Inflate(Resource.Menu.MenuSearch, menu);
base.OnCreateOptionsMenu(menu, inflater);
var searchManager = (SearchManager) this.Activity.GetSystemService(Context.SearchService);
searchView = (SearchView) (menu.FindItem(Resource.Id.action_search).ActionView);
searchView.SetSearchableInfo(searchManager.GetSearchableInfo(Activity.ComponentName));
}
我设置了HasOptionsMenu = true;在片段的oncreate.
使用上面的代码,我在searchView.SetSearchableInfo …行中获得空指针.不知道为什么会发生这种情况,尽管一切似乎都是正确的.
基于解决类似问题的一些建议,我还尝试了searchview的以下选项.
var item = menu.FindItem (Resource.Id.action_search);
var searchItem = MenuItemCompat.GetActionView(item);
searchView = searchItem.JavaCast();
searchView.SetSearchableInfo(searchManager.GetSearchableInfo(Activity.ComponentName));
但同样,我将searchView视为null.
现在我已经尝试了可能的选项,我对于为什么searchview变为null无能为力.
任何帮助深表感谢.