2014-10-01 47 views
0

依照指示操作,我試圖通過先創建一個XML作爲創建於<a href="http://developer.android.com/guide/topics/ui/menus.html" rel="nofollow">http://developer.android.com/guide/topics/ui/menus.html</a>一個選項菜單不是爲我工作

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/new_game" 
      android:icon="@drawable/ic_new_game" 
      android:title="@string/new_game" 
      android:showAsAction="ifRoom"/> 
    <item android:id="@+id/help" 
      android:icon="@drawable/ic_help" 
      android:title="@string/help" /> 
</menu> 

,然後充氣菜單中的活性

一個選項菜單添加到我的現有活動
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.game_menu, menu); 
    return true; 
} 

顯然這是不夠的。那麼我在代碼中缺少什麼?我正在測試三星S5。

我的活動extends FragmentActivity,以防萬一。

+2

您是否嘗試按下S5的菜單鍵?嘗試按多任務鍵。按住直到看到菜單是否彈出。 – Antrromet 2014-10-01 16:13:00

回答

0

我確定菜單在那裏,但你不能看到它。據我所知,上面的代碼沒有問題。問題可能出在帶有菜單鍵的手機和沒有它的手機上。關於here,herehere以及here已經有無限討論。一個人們用來強制操作欄中的溢出他們的菜單選項的黑客是

try { 
     ViewConfiguration config = ViewConfiguration.get(this); 
     Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); 
     if(menuKeyField != null) { 
      menuKeyField.setAccessible(true); 
      menuKeyField.setBoolean(config, false); 
     } 
    } catch (Exception ex) { 
     // Ignore 
    } 

把上面的代碼在你的應用程序類的onCreate()。您正在使用S5,因此請長按多任務鍵。這使得menu options in S5

+0

Field屬於哪個庫? – 2014-10-01 16:25:38

+0

http://developer.android.com/reference/java/lang/reflect/Field.html – Antrromet 2014-10-01 16:27:56

0

問題可能與您的活動正在使用的主題有關。嘗試使用其中包含操作欄的主題。我想,Theme.Holo.ActionBar。

相關問題