我不明白为什么错误和不兼容(AndroidStudio告诉我“应将app:showAsAction与appcompat库一起使用)代码
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/search"
android:showAsAction="always" />
</menu>
工作完美,但适当且兼容的版本,例如
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/search"
app:showAsAction="always" />
</menu>
完全不显示我的图标。
我正在Samsung GT P5210(android v.4.4.2)和Nexus 7(4.4.4)上进行测试
最佳答案
当您要使用操作栏时,应始终检查的内容是
1)扩展ActionBarActivity
而不是Activity
public class MainMenu extends ActionBarActivity{
2)选择 list 中定义的右侧样式
list
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
样式
<style name="AppTheme"
parent="Theme.AppCompat.Light.DarkActionBar">
</style>
3)选择右侧标题作为
showAsAction
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:**yourapp**="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
**yourapp**:showAsAction="ifRoom" />
...
</menu>
这就是大多数人会犯的错误
4)在
Menu
中定义您的Activity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
如果执行以下所有操作,则您的操作栏应该可以工作。
然后,您应该为每个位置添加
onClickListener
...