2

アプリにオプション メニューを追加しようとしています。

 public static final int MENU_AIDE = Menu.FIRST+1;
 public static final int MENU_CONTACT = Menu.FIRST+2;
 public static final int MENU_APROPOS = Menu.FIRST+3;
 public static final int MENU_QUITTER = Menu.FIRST+4;

public boolean onCreateOptionsMenu(Menu menu)
{
    menu.add(Menu.NONE, MENU_AIDE, Menu.NONE, "Aide").setIcon(R.drawable.menu_aide);
    menu.add(Menu.NONE, MENU_CONTACT, Menu.NONE, "Nous Contacter").setIcon(R.drawable.menu_contact);
    menu.add(Menu.NONE, MENU_APROPOS, Menu.NONE, "A propos").setIcon(R.drawable.menu_apropos);
    menu.add(Menu.NONE, MENU_QUITTER, Menu.NONE, "Quitter").setIcon(R.drawable.menu_quitter);
    return(super.onCreateOptionsMenu(menu));
}

public boolean onOptionsItemSelected(MenuItem item) 
{
    switch (item.getItemId()) 
    {
        case MENU_AIDE:     Toast.makeText(this,"aide",Toast.LENGTH_SHORT).show(); return (true); //add(); return(true);

        case MENU_CONTACT:  Toast.makeText(this,"contact",Toast.LENGTH_SHORT).show(); return (true);

        case MENU_APROPOS:  Toast.makeText(this,"à propos",Toast.LENGTH_SHORT).show(); return (true);

        case MENU_QUITTER:  Toast.makeText(this,"quitter",Toast.LENGTH_SHORT).show(); return (true);
    }
    return(super.onOptionsItemSelected(item));
}

しかし、タブレットではメニューが表示されませんが、エミュレーターでは「メニュー」ボタンをクリックしても問題ありません。onCreateOptionsMenu 関数は、タブでさえ起動されていません(??) !!

どちらも 4.1 で動作するため、タブレットで使用しない理由がわかりません。

行を削除するとわかりました

<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="16" />

私のタブにもメニューが表示されます........

しかし、なぜ?そして、それをどのように解決するか、つまり、min & target SDK フラグを保持し、オプション メニュー ボタンをタブレットに表示する方法を教えてください。

ありがとう。

4

1 に答える 1

1

targetSdkVersion を 8 に設定すると、メニュー ボタンがすべてのデバイスで機能するはずです。メニュー ボタンは新しい Sdk では廃止されており、sdk バージョン 11 以降を設定すると、ボタンはソフトウェア ボタンとして表示されますが、機能しません。

編集:API 11以降、メニューボタンが「機能しません」。

于 2012-11-29T10:08:04.423 に答える