0

我正在尝试使用菜单项在我的应用程序中的活动之间切换。不幸的是,当我点击菜单项时,它什么也没做。

这是activity.java代码:

@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 true;
}
// Called when the user selects a contextual menu item
@Override
public boolean onContextItemSelected(MenuItem item) {
    //Handles Item Selection.
    switch (item.getItemId()) {
        case R.id.action_switch_natural:
            Intent a = new Intent(this, Natural_Display.class);
            startActivity(a);
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

这是 main.xml 的代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/action_switch_natural"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_switch_natural"/>

</menu>

我究竟做错了什么?

4

2 回答 2

0

onContextItemSelected(MenuItem item)应该是onOptionsItemSelected(MenuItem item),就像这里看到的那样。不要忘记更改super.onContextItemSelected(item)super.onOptionsItemSelected(item).

于 2013-10-23T04:03:02.357 回答
0

我认为您必须在 onContextItemSelected 之前覆盖 onCreatecontextMenu。

尝试这个。

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.context_menu, menu); 

}

于 2013-10-23T03:57:37.013 回答