Android 当我选择菜单选项一次。OnOptions ItemSelected被调用两次。(安卓)

Android 当我选择菜单选项一次。OnOptions ItemSelected被调用两次。(安卓),android,menu,Android,Menu,单击“我的菜单”两次时,将调用onoptionitemselected。如何阻止它 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.docmenu, menu); return true; } @Override public boolean onOptionsItemS

单击“我的菜单”两次时,将调用onoptionitemselected。如何阻止它

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.docmenu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
      case R.id.upload:
            Log.e("testing", "called");
            return true;
      case R.id.back:
        return true;
      default:
      return super.onOptionsItemSelected(item);
     }
    }
我的菜单xml是

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/upload"
          android:icon="@drawable/menu_upload"
          android:title="@string/upload" />
    <item android:id="@+id/back"
          android:icon="@drawable/menu_back"
          android:title="@string/back" />
</menu>

选择上载图标时。在日志中,调用的测试被打印两次

@Override
   public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId())
    {
    case R.id.Aboutus: 
        final Dialog d1 = new Dialog(Welcome.this);
        d1.setContentView(R.layout.aboutus);

        d1.show();



        break;
并确保已在res named菜单下创建文件夹。并创建新的menu.xml文件

并将如下代码放入menu.xml文件中,如下所示:

<?xml version="1.0" encoding="utf-8"?>


并确保已在res named菜单下创建文件夹。并创建新的menu.xml文件

并将如下代码放入menu.xml文件中,如下所示:

<?xml version="1.0" encoding="utf-8"?>



onOptionsItemSelected返回true正常

onOptionsItemSelected返回true正常

尝试以下代码

@Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId()) 
        {
        case R.id.menu_settings:
                Toast.makeText(getApplicationContext(), "Settings", Toast.LENGTH_LONG).show();
            break;

        case R.id.my_settings:
            Toast.makeText(getApplicationContext(), "Home Page", Toast.LENGTH_LONG).show();
            break;
        default:
            Toast.makeText(getApplicationContext(), "Exit", Toast.LENGTH_LONG).show();
        }
        return super.onOptionsItemSelected(item);
    }
在菜单文件夹中创建一个新的xml,并应用此代码

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_settings"
        android:title="@string/menu_settings"
        android:orderInCategory="100"
        android:showAsAction="never" />
    <item android:id="@+id/my_settings"
        android:title="@string/my_settings"
        android:orderInCategory="100"
        android:showAsAction="never" />
</menu>

试试这段代码

@Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId()) 
        {
        case R.id.menu_settings:
                Toast.makeText(getApplicationContext(), "Settings", Toast.LENGTH_LONG).show();
            break;

        case R.id.my_settings:
            Toast.makeText(getApplicationContext(), "Home Page", Toast.LENGTH_LONG).show();
            break;
        default:
            Toast.makeText(getApplicationContext(), "Exit", Toast.LENGTH_LONG).show();
        }
        return super.onOptionsItemSelected(item);
    }
在菜单文件夹中创建一个新的xml,并应用此代码

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_settings"
        android:title="@string/menu_settings"
        android:orderInCategory="100"
        android:showAsAction="never" />
    <item android:id="@+id/my_settings"
        android:title="@string/my_settings"
        android:orderInCategory="100"
        android:showAsAction="never" />
</menu>


如何初始化菜单?如何初始化菜单?现在我添加了xml和初始化菜单代码。有什么问题吗?@Manoharan正确地打破了每个案例。如果布尔值应该返回,你怎么能打破呢?现在我添加了我的xml并初始化了菜单代码。有什么问题吗?@Manoharan正确地破译每个案例。如果返回布尔值,你怎么破译呢