【发布时间】:2016-03-21 09:00:18
【问题描述】:
试图在操作栏中包含一个搜索视图。为此,我做了以下工作:
在菜单文件夹中创建了 MenuSearch.xml,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
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"/>
</menu>
在片段中包含方法 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));
}
我已经在片段的 oncreate 中设置了HasOptionsMenu = true;。
使用上面的代码,我在 searchView.SetSearchableInfo... 行中得到空指针。不知道为什么会发生这种情况,尽管一切似乎都正确且到位。
根据解决类似问题的一些建议,我还尝试了以下搜索视图选项。
var item = menu.FindItem (Resource.Id.action_search);
var searchItem = MenuItemCompat.GetActionView(item);
searchView = searchItem.JavaCast<Android.Support.V7.Widget.SearchView>();
searchView.SetSearchableInfo(searchManager.GetSearchableInfo(Activity.ComponentName));
但同样,我将 searchView 设为 null。
现在我已经尝试了可能的选项,我不知道为什么 searchview 变为空。
非常感谢任何帮助。
【问题讨论】:
标签: android xamarin searchview