我正在尝试将一个搜索小部件添加到操作栏中,由于某些原因我得到“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>
那么,我做错了什么?
答案 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();