質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.37%

RecyclerView(ListView)の右端にメニューボタンを表示しクリックでContextMenuを表示する方法

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,788

score 333

前提・実現したいこと

RecyclerView(ListView)の右端にメニューボタンを表示しクリックでContextMenuを表示する実装方法を知りたいです。
ContextMenuは通常長押しで表示されることは分かったのですが、オプションメニューのように点3つをRecyclerView(ListView)の右端に配置し、そのメニュークリックで、長押し時のコンテキストメニューと同じものを表示しているアプリが幾つかありますが、その実装方法を知りたいです。

ContextMenuの実装方法参考サイト

リストビュー内のコンテキストメニュー

補足情報(FW/ツールのバージョンなど)

Android Studio3.4
対象API14から28

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

すでに解決してしまったみたいですが、ボタンクリックでメニューを表示するには PopupMenu が使えます。おそらく探されているのはこれだと思います。
ご参考までに。

PopupMenu popup = new PopupMenu(context, button);
popup.inflate(R.menu.xxx);
popup.show();

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/08/09 21:36

    いつも、ありがとうございます。
    まさに、これのような気がします。
    実装してみてから結果報告します。

    キャンセル

  • 2019/08/09 22:43 編集

    無事実装出来て、動作確認も取れました。
    しかし、一つはまってしまったことがあり、背景色とフォントが白で判別不能に。。
    背景色とフォントカラーの設定の仕方は分かりますでしょうか?
    背景色とフォントカラーの設定については別途質問をあげることにします。

    キャンセル

  • 2019/08/09 23:52

    https://teratail.com/questions/205291?reply=true
    上記で自己解決しました。

    キャンセル

+1

「android listview button contextmenu」で検索すると
How to open Menu Context Android with click button in listview adapter?
という記事がありました.

「点三つ」のボタンは…適当に作っても良いのではないでしょうか.

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/08/08 05:35

    ご回答頂きありがとうございます。大変助かります。
    実装してみて動きましたら、ベストアンサーにさせて頂く予定です。
    取り急ぎ、ご連絡まで。

    キャンセル

  • 2019/08/09 00:28 編集

    RecyclerViewである程度進めていました。
    色々調べて行くと、ListViewとRecyclerViewは色々と違い過ぎて。。
    RecyclerViewでの通常のコンテキストメニューの表示の仕方すら分からない状態に陥りました。。
    https://qiita.com/HideMatsu/items/d796e5ce2387e3de9f77
    上記より、RecyclerViewでポップアップウィンドウ表示というので、行のロングクリックと適当に追加したメニューボタンで表示できればという方向に方針転換しようと考えています。
    実装はこれからなので、別途疑問点が発生しそうなのですが。。
    従って、ListViewとしてはベストアンサーとして、この質問はクローズしたいと考えます。
    お手間を取らせて申し訳ありませんでした。

    キャンセル

  • 2019/08/09 01:02

    RecyclerView はその表示形態から ListView の後継のように紹介されたりしましたが, ListView の実績を参考に(主に軽量化などを目的に?)作られた別物のようです.
    RecyclerView での ContextMenu につきましては, やはり検索するとあちこちに実装記事が見られました, 「王道はコレ!」というのは分かりませんでしたが, がんばってください.

    キャンセル

  • 2019/08/09 01:24

    RecyclerViewの方が柔軟に色々と出来るっていうのもあるみたいですよね。。行を掴んで移動とか、横にスワイプとか。。使わないですけど。。
    RecyclerViewを使おうと考えた一番の理由が、
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    上記のテーマのときに何故か、ListViewは1行目がツールバーに被ってしまい、RecyclerViewだと大丈夫だったという所からスタートしているのですが。。
    別途問題が発生したときに、また質問させて頂きます。よろしくお願いいたします。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る