我在main.xml
文件中定义了一些菜单项:
<item
android:id="@+id/action_edit_friends"
android:title="@string/menu_edit_friends_label">
</item>
<item
android:id="@+id/action_logout"
android:title="@string/menu_logout_label">
</item>
在MainActivity
课程中,我在onOptionsItemSelected
方法中有以下代码:
int id = item.getItemId();
if(id == R.id.action_edit_friends) {
//Start a new activity
} else if(id == R.id.action_logout) {
//Log the user out
然而,问题是:每当我点击action_edit_friends
时,都会执行action_logout
的代码,反之亦然。关于为什么会发生这种情况的任何线索?我已经清理了这个项目,但没有用。
答案 0 :(得分:1)
使用android:orderInCategory="1"
,如下所示:
<item
android:id="@+id/action_go_right"
android:orderInCategory="1"
android:showAsAction="never"
android:title="@string/menu_go_right"/>
<item
android:id="@+id/action_go_left"
android:orderInCategory="2"
android:showAsAction="never"
android:title="@string/menu_go_left"/>
如果您的字符串实际上是正确的,这不能解决问题,但它至少可以订购菜单上的项目。无论如何,Android将在重新编译xml时重建R文件。如果问题仍然存在,请尝试将操作ID更改为xml和Java代码中的不同。