web-dev-qa-db-ja.com

ポップアップメニュー項目の処理クリック

Androidアプリケーションにポップアップメニューを実装しました。ポップアップメニューのxmlを作成しましたが、コードも正常に機能します。今、私が理解できないのは、ポップアップメニュー項目の処理方法です。 。PopupMenu.OnMenuItemClickListenerを使用しようとしましたが、成功しませんでした。どうすればよいですか?

ポップアップメニューのコード

ImageButton button = (ImageButton) view.findViewById(R.id.popUp_song);

            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    PopupMenu popup = new PopupMenu(activity, v);
                    Menu m = popup.getMenu();
                    MenuInflater inflater = popup.getMenuInflater();
                    inflater.inflate(R.menu.song_popup, popup.getMenu());

                    if (audio.getDownload().equals("0")) {

                        m.removeItem(R.id.add_download);

                    }

                    popup.show();
                }


            });

xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
    style="@style/ToolBarStyle">

    <item
        Android:id="@+id/add_queue"
        Android:title="Add to queue" />
    <item
        Android:id="@+id/play_next"
        Android:title="Add to favourite" />
    <item
        Android:id="@+id/add_download"
        Android:title="Download" />


</menu>
12
CraZyDroiD

PopupMenuを表示する前に、クリックイベントを処理するためのPopupMenuのリスナーを追加します。

popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        Toast.makeText(getApplicationContext(),
                                item.getTitle(), Toast.LENGTH_SHORT).show();
                        return true;
                    }
                });
16
Kartheek