在我的應用程序中,我使用的是ActionBarSherlock 4.4。OpenOptionsMenu不能使用ActionBarSherlock自定義SubMenu
由於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設備具有硬件菜單鍵。我希望當菜單鍵被按下時,應該打開溢出選項菜單。
我在Activity中使用了下面的代碼,但它不起作用。 (我得到消息,我的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"
已被點擊?
如果有人指出我在這裏錯過了什麼,那將會很棒。
謝謝回答!但我已經解決了這個問題,使用了另一種與選項菜單相關的方法(查看我的答案)。但是,你的答案是簡單而簡單的(也可能是* hacky *的方法)。 +1從我身邊。我喜歡黑客! :d – Swayam