看到这里,我的眼睛都红了:
我使用 ABS 并且在 Android 2.2 下一切正常,但在 ICS 上item.getItemId()
总是返回 0。因为item.toString()
返回不同的值。我觉得我应该能够解决这个问题,但我总是在信息页面上结束。
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Info")
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
menu.add("Preferences")
.setIcon(R.drawable.ic_preferences)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.toString() == "Preferences"){
Intent intent = new Intent();
intent.setClass(this,Preferences.class);
startActivity(intent);
return true;
}
else {
Intent intent = new Intent();
intent.setClass(this,Info.class);
startActivity(intent);
return true;
}
}
我想我应该打开item.getItemId()
,但我不知道在哪里定义 ActionBar 视图。一段时间以来,我一直对菜单文件夹下的文件 actionbar.xml 感到困惑,但收效甚微:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/preferences"
android:showAsAction="always"
android:icon="@drawable/ic_preferences"></item>
<item android:id="@+id/info"
android:showAsAction="always"></item>
</menu>
人们应该相信答案相当简单。任何人都可以给我一个正确的方向,从 SDK 版本 7 到 15 的工作方式相同吗?
任何帮助是极大的赞赏。