2011-03-16 15 views
2

私はカスタムダイアログを持っており、optionMenuの代わりにそれを使用します。だから私はmyDialogがメニューのように動作するようにしたい、すなわちMenu pressのshow/hide。私は多くのバリエーションを試してみましたが、同じ結果を持っていた:Androidカスタムダイアログメニューの表示/非表示

私は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; 
     } 

ためOnKeyListenerを設定するようにダイアログがメニュープレスによって作成されるたびに、それはすぐにそのリスナーによって非表示になります。

メニューボタンを使用してダイアログを作成する方法はありますか?私の活動で

答えて

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