android搜索小部件菜单项

时间:2013-02-02 18:55:09

标签: android search

我使用此代码this Android API Guides建议在android 3.0或更高版本中使用搜索小部件:

   @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the options menu from XML
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);

    // Get the SearchView and set the searchable configuration
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default

    return true;
}

我在res / menu / menu.xml中声明了搜索菜单项(和其他菜单项)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/help"
        android:icon="@android:drawable/ic_menu_help"
        android:title="Help" 
        />
    <item android:id="@+id/menu_search"
        android:icon="@android:drawable/ic_menu_search"
        android:title="Search" 
        android:showAsAction="ifRoom"
    />
</menu>

我还为API指南建议的搜索结果及其res / xml / searchable.xml设置创建了一个活动。 但是当我启动我的应用时,我会在NullPointerExceptiononCreateOptionsMenu

获得onCreatePanelMenu

1 个答案:

答案 0 :(得分:1)

正如@ A - C所说,你忘了你的menu_search项目需要android:actionViewClass="android.widget.SearchView 尝试添加它,看看它是否有效。如果没有,请确保将LogCat堆栈跟踪附加为您的问题的编辑。