按菜单上的Android自定义对话框显示/隐藏

时间:2011-03-16 13:18:58

标签: android menu dialog

我有一个自定义对话框,而不是使用optionMenu。所以我希望myDialog表现得像菜单,即在菜单按下显示/隐藏。我尝试了很多变种,但结果相同:

我为myDialog设置了一个OnKeyListener

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

因此,每次按Menu按钮创建对话框时,它都会立即被该监听器隐藏。

是否有任何想法让我的对话框与菜单按钮一起使用?

1 个答案:

答案 0 :(得分: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>