0

質問は簡単です:

PopupWindowから拡張されたクラスのメニューボタンのクリックをキャッチするにはどうすればよいですか?

私が今していることは次のとおりです。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if (keyCode == KeyEvent.KEYCODE_MENU)
    {
        if (ab != null) {
            ab.showActionOverflowMenu();
        }
    }
    return true;
}

ab.showActionOverflowMenu()は次のことを行います。

public boolean showActionOverflowMenu() {
    if (actions.size() >= 4) {
        try {
            if (ag.isVisible()) {
                ag.dismiss();
            } else {
                showActionOverflow();
                return true;
            }
        } catch (Exception e) {
            showActionOverflow();
            Log.d("click", "click");
            return true;
        }
    }
    return false;
}

showActionOverflow()は、ポップアップウィンドウを設定してボタンにアタッチするだけです。

tl; drモード:メニューボタンを閉じたり、ポップアップウィンドウを表示したりします。

4

1 に答える 1

2

PopupWindow とそのエクステンデントでメニュー イベントをキャッチすることはできません。

ただし、ポップアップウィンドウを起動するアクティビティでメニューイベントをキャッチしてから、ポップアップウィンドウにディスパッチできます。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if (keyCode == KeyEvent.KEYCODE_MENU)
    {
        yourPopupWindow.menuClicked();
    }

    return super.onKeyDown(keyCode, event);
}
于 2012-05-24T12:58:19.983 に答える