こんにちは、まっさん(@Tera_Msaki)です。
この記事はAndroidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Javaでの開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Androidのアプリ開発でお役にたててれば、嬉しいです。
(これから Androidのアプリ開発や Java での開発を始めたい方への案内は、記事の最後で紹介します)
RecyclerView(ListView)の Item にポップアップメニューを実装する。
ソースのバックアップで使ってます。
USBで接続できて、1TBで転送速度600MB/秒、
もう大容量の内蔵ディスクは不要ですね♪
ポイント
ユーザに処理を選択させる仕組みとして、
ポップアップメニューは有効な手段のひとつです。
一覧表示された項目の選択とその項目に対して、
処理を選択させる仕組みを、PopupMenu を使用して実装します。
実装方法
◎メニュー定義ファイルをリソースに登録する
リソース(res)にメニュー(xmlファイル)を格納するためのフォルダ(menu)を作成します。
作成したフォルダにメニューを定義したxmlファイルを格納します。

< メニュー定義ファイル >
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu1" android:title="@string/menu1" />
<item android:id="@+id/menu2" android:title="@string/menu2"/>
<item android:id="@+id/menu3" android:title="@string/menu3"/>
<item android:id="@+id/menu4" android:title="@string/menu4"/>
</menu>
メニュー項目は、strings.xml に記述します。
<resources>
:
<string name="menu1">コース名変更</string>
<string name="menu2">イメージ表示</string>
<string name="menu3">イメージ選択</string>
<string name="menu4">カメラ撮影</string>
:
</resources>
◎ポップアップメニューの表示と選択時の処理を実装する
一覧表示された項目の選択は、
RecyclerView(ListView)の setOnItemClickListener に記述します。
setOnItemClickListener で view と position(選択位置)が取得できるので、
view をセットして、PopupMenu をインスタンス化します。
処理の選択は、インスタンス化とあわせて、
setOnMenuItemClickListener に記述します。
:
import androidx.appcompat.widget.PopupMenu;
:
public class MainActivity extends AppCompatActivity {
:
public void updateCourseList(List<AccessFile> newAccessFile){
courseList = (ArrayList<AccessFile>) newAccessFile;
courseAdapter = new HorizontalListView.ArrayAdapter(courseList) {
courseView.setAdapter(courseAdapter);
courseView.setOnItemClickListener((view, position) -> {
PopupMenu popup = new PopupMenu(this, view);
popup.setOnMenuItemClickListener(item -> {
itemId = item.getItemId();
switch (itemId) {
case R.id.menu1:
:
break;
case R.id.menu2:
:
break;
default:
}
return false;
});
popup.inflate(R.menu.menu_course);
popup.show();
}
});
HorizontalListView は、横方向に一覧表示するようにカスタムした RecyclerView です。
< Fragmentの場合 >
:
musicView.setOnItemClickListener((view, position) -> {
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(context, R.style.PopupMenu);
PopupMenu popup = new PopupMenu(contextThemeWrapper, view);
popup.setOnMenuItemClickListener(item -> {
itemId = item.getItemId();
switch (itemId) {
case R.id.menu1:
:
break;
case R.id.menu2:
:
break;
default:
:
break;
}
return false;
});
popup.inflate(R.menu.menu_music);
popup.show();
});
今回は、ここまでです。
誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちらから、お願いいたします♪
ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ
初めての Android のアプリ開発では、アプリケーション開発経験がない方や、
アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、
書籍などによる独学ではアプリ開発できるようになるには、
かなりの時間がかかりますので、オンラインスクールでの習得をおススメします。
副業でアプリケーション開発と考えているなら、おススメです。
無料説明会に参加して、話を聞くだけでもためになるよ♪

ITスキルを身に付け、キャリアアップ。オンライン授業で仕事と両立できます。
まずは資料請求から♪
未経験者からシステムエンジニアを目指すのに最適かと、
まずは無料相談から♪

無料でJava言語を学べるのは、かなり魅力的♪
でも、応募資格は35歳以下です、、、
2022年12月から説明会が土曜日開催が追加されていますよ♪
説明会では、希望者に対してプログラミング体験もできるよ♪

未経験者からプログラマーを目指すのに最適かと、
まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています、
お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適かと、
まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪
コメント欄