2011-03-16 128 views
2

我有一個自定義對話框,用它代替optionMenu。所以我希望myDialog表現得像菜單一樣,即在菜單上按下顯示/隱藏。我試過很多變種,但有相同的結果:Android自定義對話框在菜單上顯示/隱藏按

爲我設置爲OnKeyListener myDialog

myDialog.setOnKeyListener(new OnKeyListener() { 
     @Override 
     public boolean onKey(DialogInterface arg0, int arg1, KeyEvent arg2) { 
      if (arg1 == KeyEvent.KEYCODE_MENU) { 
            myActivity.this.removeDialog(ID); 
            return true; 
      } 
      return false; 
     } 

因此利用菜單按創建的每次對話,它會立即通過偵聽器隱藏。

是否有任何想法使我的對話框使用菜單按鈕?

回答

1

在我的活動:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    LayoutInflater li = LayoutInflater.from(this); 
    switch (item.getItemId()) { 
    case R.id.help: 
    // ... etc, etc. 
} 

/res/menu/menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/help" 
     android:title="Help" /> 
    <item android:id="@+id/about" 
     android:title="About" /> 
    <item android:id="@+id/prefs" 
      android:title="Preferences" /> 
</menu> 
+0

以及這如何幫助? LayoutInflater li = LayoutInflater.from(this); 這是假設要做什麼,只是一個毫無意義的初始化? – max4ever 2011-05-24 16:12:42