为什么android.R.menu_search给我一个错误?

时间:2013-07-22 00:07:09

标签: android eclipse android-resources

我正在尝试将一个搜索小部件添加到操作栏中,由于某些原因我得到“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>

那么,我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您有自己的菜单xml,则无法读取Android的标识符。 所以你的问题将被解决,取而代之的是

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

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