0

我在我的应用程序上使用了第四级活动菜单,一切正常,但是当我在第四级菜单上选择一个项目时,系统不再调用onOptionsItemSelected,所以我无法在我的应用程序上获取所选项目。

这是我的代码

编辑 1:ID 中的破折号-令人困惑,我正在将它们从代码中删除。对此感到抱歉

public class Main extends FragmentActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
// .... some code
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.Level1: {
       Toast.makeText(getBaseContext(), "Level 1", Toast.LENGTH_SHORT).show();
       break;
    }
    case R.id.Level2: {
       Toast.makeText(getBaseContext(), "Level 2", Toast.LENGTH_SHORT).show();
       break;
    }
    case R.id.Level3: {
       Toast.makeText(getBaseContext(), "Level 3", Toast.LENGTH_SHORT).show();
       break;
    }
    case R.id.Level4: {
       Toast.makeText(getBaseContext(), "Level 4", Toast.LENGTH_SHORT).show();
       break;
    }}
    return true;
}

这里是 XML 文件main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item  android:id="@+id/Level1"
    android:showAsAction="ifRoom"
    android:title="@string/Level1">
    <menu>
    <item android:id="@+id/Level2"
          android:title="@string/Level2">
          <menu>
          <item android:id="@+id/Level3"
              android:title="@string/Level3">
              <menu>
              <item android:id="@+id/Level4"
                  android:title="@string/Level4"/>
              </menu>
          </item>
          </menu>
    </item>
    </menu>
</item>
</menu>

我正在阅读文档,但它没有说明嵌套子菜单的限制。

最后,我的解决方案是将 a 附加android:onClick="onOptionsItemSelected"到第四级项目,例如:

              <menu>
              <item android:id="@+id/Level4"
                  android:onClick="onOptionsItemSelected"
                  android:title="@string/Level4"/>
              </menu>

强制调用onOptionItemSelected,它可以工作,但有更好的解决方案吗???

编辑 2:我刚刚发现此操作不适用于 Android 4.0.3 或更早版本。!!!甚至不使用onMenuItemSelected...!!!

现在我有问题,请帮助...!

4

0 回答 0