0

私はこれに似たプロジェクトに従っています: http://www.javatpoint.com/android-popup-menu-example

recyclerView の各アイテムにオーバーフロー メニューを作成しました。ちゃんとメニューが出てきます。ダウンロードというメニュー項目と、ダウンロードのキャンセルという別のメニュー項目を作成しました。このようなもの:

popup.xml (メニューフォルダー内)

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/video_download"
        android:title="Download"/>

    <item
        android:id="@+id/video_download_cancel"
        android:title="Cancel Download"
        android:visible="false"/>
</menu>

ポップ メニューは問題なく適切に表示されます。

問題は次のとおりです。

Download の OnClick video_downloadを非表示にし、video_download_cancel を表示したいと思います。

これは可能ですか?

作成したオーバーフロー メニュー (3 つの縦のドット) のクリック イベントは次のとおりです。

personViewHolder.video_menu.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                final PopupMenu popup = new PopupMenu(mContext, v);
                popup.getMenuInflater().inflate(R.menu.popmenu, popup.getMenu());
                popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
                {
                    @Override
                    public boolean onMenuItemClick(MenuItem item)
                    {
                        Intent intent = new Intent(mContext, Download_Service.class);
                        intent.putExtra("link", urlstring);
                        mContext.startService(intent);

                        return true;
                    }

                });

                popup.show();
            }
        });

ここで、video_menu は画像 (縦に 3 つのドット) です。

4

2 に答える 2

1

これを試して:

popup.getMenu().getItem(0).setVisible(false);

Menu のインスタンスを取得し、最初の項目を取得して表示/非表示にします。

于 2016-03-15T11:39:17.317 に答える