0

アプリで第 4 レベルのアクティブ メニューを使用しています。すべてが完璧に機能しますが、メニューの第 4 レベルで 1 つのアイテムを選択すると、システムが呼び出さ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"、次のような第 4 レベルの項目にa を追加することでした。

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

への呼び出しを強制するにはonOptionItemSelected、機能しますが、より良い解決策はありますか???

編集 2: このウォークアラウンドは Android バージョン 4.0.3 以前では機能しないことがわかりました.!!! 使っていませんonMenuItemSelected...!!!

今私は問題を抱えています、助けてください...!!

4

0 に答える 0