0

アプリケーションでフラグメントを含む ActionBarSherlock タブを使用しています。

public class ExampleActivity extends SherlockFragmentActivity{}

アクションバーにオプションメニューを追加しました。問題は、アクション バーの仮想ボタンをクリックするとオプション メニューが表示されますが、物理ボタンを押しても表示されないことです。物理メニュー ボタンを押したときにオプション メニューが表示されるようにしたいと考えています。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //return super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.menu_prefs:
            Intent i = new Intent(this,ShowSettingsActivity.class);
            startActivityForResult(i, requestCode);
            return true;
        case R.id.menu_faq:
            startActivity(new Intent(this, AboutApp.class));
            return true;
        case R.id.menu_contact:
            startActivity(new Intent(this, FeedbackApp.class));
            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}

そして res/menu/options_menu.xml で:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_settings"
        android:title="@string/menu_settings"
        android:icon="@drawable/ic_settings_dark"
        android:orderInCategory="100"
        android:showAsAction="always">
      <menu
          android:id="@+id/e">
        <item
            android:id="@+id/menu_prefs"                                
            android:title="@string/menu_prefs"/>
        <item
            android:id="@+id/menu_faq"                                
            android:title="@string/menu_faq"/>
        <item
            android:id="@+id/menu_contact"                                
            android:title="@string/menu_contact"/>
    </menu>
    </item>
</menu>

サブメニューを削除すると、物理ボタンをクリックするとオプション メニューが表示されます。

4

2 に答える 2

0

(私の最初の答えがポイントから外れていたことについて申し訳ありません)

<menu>XML要素がandroid:idを属性として受け入れるとは思いません。削除してみましたか?

別の試み:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    return true; // override the useless returned value by super()
}
于 2012-09-12T10:02:45.190 に答える
0

このコードを試してください:

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

これがお役に立てば幸いです。

于 2012-09-12T11:09:05.937 に答える