我是Android开发的新手。我正在关注developer.android.com的Beginning Development Tutorial。不幸的是,我一直试图将搜索操作项添加到操作栏。这是我的XML和对应的onCreateOptionsMenu:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.test.MainActivity" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
app:showAsAction="always"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never"/>
</menu>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
我的drawable目录包含所有屏幕密度的ic_action_search.png。另外,我的SDK min为8,目标为19.我也导入了v7.app.ActionBarActivity。
显示设置和溢出菜单,但搜索仍然缺失。我做错了什么?
答案 0 :(得分:2)
可能是因为您正在使用兼容性库,在这种情况下您需要向菜单XML文件添加额外的属性。这是我搜索选项的项目......
<item android:id="@+id/options_menu_search"
android:title="@string/search"
android:icon="@android:drawable/ic_menu_search"
com.mycompany.myapp:showAsAction="ifRoom|collapseActionView"
com.mycompany.myapp:actionViewClass="android.support.v7.widget.SearchView" >
</item>
请注意以com.mycompany.myapp
开头的两行 - 使用兼容性菜单选项时必须使用这些行。更改该前缀以匹配您应用的包名称。