第四级菜单选项不起作用

时间:2013-08-27 09:59:32

标签: android menu

我在我的应用程序上使用第四级Active Menu,一切都很完美但是当我在菜单第四级选择一个项目时,系统不再调用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>

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

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

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

强制调用onOptionItemSelected,它有效,但有更好的解决方案???

编辑2:我刚刚发现这种绕行方式不适用于Android 4.0.3或更早版本。甚至没有使用onMenuItemSelected ...... !!!

现在我遇到了问题,请帮忙...... !!

0 个答案:

没有答案