2012-09-13 29 views
0

我有2臺設備上,我正在測試我的應用程序,Galaxy Nexus的和Desire HD的(其中有硬件按鈕)選項不顯示當按下硬件菜單

我採取這樣的菜單

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.feedback: 

       Intent i = new Intent(Intent.ACTION_SEND); 
       i.setType("message/rfc822"); 
       i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
       i.putExtra(Intent.EXTRA_SUBJECT, " feedback"); 
       i.putExtra(Intent.EXTRA_TEXT , ""); 
       try { 
        startActivity(Intent.createChooser(i, "Send mail...")); 
       } catch (android.content.ActivityNotFoundException ex) { 
        Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
       } 
       return true; 
      case R.id.about: 
       Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
       return true; 
      default: 
       return true; 
     } 
    } 

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

在星系之間的行動欄菜單按鈕顯示,它膨脹的菜單和一切工作正常。 在操作欄中的Desire HD上,菜單按鈕不顯示,因爲我有硬件按鈕,但是如果我按下硬件菜單按鈕,則什麼都不會發生。

我該如何解決這個問題?

編輯:這是我的XML

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/feedback" 
      android:icon="@drawable/ic_launcher" 
      android:title="Feedback" 
      android:showAsAction="never"/> 
    <item android:id="@+id/about" 
      android:icon="@drawable/ic_launcher" 
      android:title="About" /> 
</menu> 
+0

請將菜單XML文件發佈到'activity_main.xml'中。你使用'showAsAction'屬性嗎? – Sam

+0

好的,我已經將xml添加到主帖子中,showAsAction設置爲從不,因爲在我的JB銀河聯繫中,我有反饋顯示在操作欄中菜單按鈕的左側,並且我想要它在菜單內 – DoubleP90

+0

你使用ActionBar Sherlock和你最低的API是什麼? – Sam

回答

0

我可以硬編碼它做的默認操作?

我還不確定爲什麼會發生這種情況,但這裏是如何攔截菜單按鈕並打開菜單。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_MENU) { 
     openOptionsMenu(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

謝謝,這臨時解決了我的問題,希望我能找到一個永久的解決方案到它 – DoubleP90