2

私のアプリケーションでは、ActionBarSherlock 4.4 を使用しています。

ForcedOverflow は最新バージョンから削除されたため、次の XML コードを使用して OverflowMenu を複製しました。

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_overflow"
        android:icon="@drawable/abs__ic_menu_moreoverflow_holo_dark"
        android:orderInCategory="100"
        android:showAsAction="always">
        <menu>
            <item
                android:id="@+id/action_settings"
                android:showAsAction="never"
                android:title="@string/action_settings" />
            <item
                android:id="@+id/recycleBin"
                android:showAsAction="never"
                android:title="Recycle Bin" />
        </menu>
    </item>
</menu>

オーバーフローは、Android 4.3 と 2.3.3 の両方で完全に機能しています。

私の問題 :

2.3.3 デバイスには、ハードウェア メニュー キーがあります。メニュー キーを押したときに、Overflow OptionsMenu を開く必要があります。

アクティビティで次のコードを使用しましたが、機能しません。(ただし、LogCat でメッセージを取得しています)

@Override
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
            if (event.getAction() == KeyEvent.ACTION_UP &&
                keyCode == KeyEvent.KEYCODE_MENU) {
                Log.d("HomeActivity", "OpenOptionsMenu");
                openOptionsMenu();
                return true;
            }
        }
        return super.onKeyUp(keyCode, event);
    }

私はたくさん見回し、提案されたすべての解決策を試しました。しかし、 を使用してカスタム オーバーフロー メニューを開くことについて誰も話していませんopenOptionsMenu()

ここで何か不足していますか?

android:id="@+id/menu_overflow"親のオーバーフロー アイコン項目がクリックされたかのように見せる方法はありますか?

誰かが私がここで見逃していることを指摘してくれたら幸いです。

4

2 に答える 2