1

我正在尝试将搜索小部件添加到操作栏,由于某种原因,我得到“android.R.menu_search 无法解析或不是字段”。我正在使用的代码是

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.geolocation_search, menu);

        //Get the SearchView and set the searchable configuration
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(android.R.layout.menu_search).getActionView();
        //Assumes current activity is the searchable activity
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        //searchView.setIconifiedByDefault(false);
        return true;
    }

xml文件是

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
    <item
        android:id="@+id/headers"
        android:showAsAction="always|withText"
        android:title="@string/header1"/>
    <item
        android:id="@+id/menu_search"
        android:actionViewClass="android.widget.SearchView"
        android:icon="@android:drawable/ic_menu_search"
        android:showAsAction="always"
        android:title="@string/search"/>

</menu>

那么,我做错了什么?

4

1 回答 1

1

如果您有自己的菜单 xml,您将无法读取 android 的标识符,而是您的。所以你的问题将得到解决

SearchView searchView = (SearchView) menu.findItem(android.R.layout.menu_search).getActionView();

SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
于 2013-07-22T01:10:01.887 回答