Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android開発】アラートダイアログ(AlertDialog)にチェックボックスリストを追加する方法

この記事では、Androidアプリでアラートダイアログ(AlertDialog)にチェックボックス形式の複数選択リストを追加する方法を、実際のコード例とともにステップごとに解説します。

setMultiChoiceItems()メソッドを使用すると、ユーザーが複数の項目を選択できるダイアログを簡単に実装できます。選択状態はboolean配列で管理され、項目がチェックされたタイミングで任意の処理を実行することも可能です。

手順1:新しいプロジェクトを作成する

まず、Android Studioを開き、メニューから「File」⇒「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力してプロジェクトをセットアップしてください。

手順2:レイアウトファイル(activity_main.xml)を編集する

次に、res/layout/activity_main.xmlに以下のコードを追加します。

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
    android:layout_width = "match_parent"
    android:gravity = "center"
    android:layout_height = "match_parent">
    <TextView
        android:id = "@+id/click"
        android:layout_width = "wrap_content"
        android:textSize = "30sp"
        android:layout_height = "wrap_content"
        android:text = "Click"/>
</LinearLayout>

上記のコードでは、画面中央に配置された「Click」というテキストを持つTextViewを定義しています。このTextViewをタップするとアラートダイアログが表示される仕組みになります。

手順3:MainActivity.javaにコードを追加する

続いて、src/MainActivity.javaに以下のコードを追加します。

package com.example.myapplication;
import android.annotation.TargetApi;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    TextView text;
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = findViewById(R.id.click);
        text.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showAlertDialog();
            }
        });
    }
    private void showAlertDialog() {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
        alertDialog.setTitle("AlertDialog");
        String[] items = {"java","android","Data Structures","HTML","CSS"};
        boolean[] checkedItems = {false, false, false, false, false,false};
        alertDialog.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                switch (which) {
                    case 0:
                        if(isChecked)
                            Toast.makeText(MainActivity.this, "Clicked on java", Toast.LENGTH_LONG).show();
                    break;
                    case 1:
                        if(isChecked)
                            Toast.makeText(MainActivity.this, "Clicked on android", Toast.LENGTH_LONG).show();
                    break;
                    case 2:
                        if(isChecked)
                            Toast.makeText(MainActivity.this, "Clicked on Data Structures", Toast.LENGTH_LONG).show();
                        break;
                    case 3:
                        if(isChecked)
                            Toast.makeText(MainActivity.this, "Clicked on HTML", Toast.LENGTH_LONG).show();
                    break;
                    case 4:
                        if(isChecked)
                            Toast.makeText(MainActivity.this, "Clicked on CSS", Toast.LENGTH_LONG).show();
                    break;
                }
            }
        });
        AlertDialog alert = alertDialog.create();
        alert.setCanceledOnTouchOutside(false);
        alert.show();
    }
}

コードのポイント解説

  • items配列: ダイアログに表示する選択肢(java、android、Data Structures、HTML、CSS)を文字列配列として定義しています。
  • checkedItems配列: 各項目の初期チェック状態を管理するboolean配列です。ここではすべて「false」(未選択)に設定しています。
  • setMultiChoiceItems(): チェックボックス付きの複数選択リストをダイアログに設定するメソッドです。
  • OnMultiChoiceClickListener: 項目がチェック・解除されるたびに呼び出され、which(項目のインデックス)とisChecked(チェック状態)を受け取ります。
  • Toast表示: チェックされた項目に応じて、対応するメッセージをトーストで表示します。
  • setCanceledOnTouchOutside(false): ダイアログの外側をタップしても閉じないように設定しています。

アプリを実行して動作を確認する

それでは、アプリケーションを実行してみましょう。実機のAndroidスマートフォンをパソコンに接続していることを前提に説明します。

Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルを開き、ツールバーの「Run(実行)」アイコンをクリックします。デバイス選択画面で接続したモバイル端末を選択すると、端末にデフォルト画面が表示されます。

【Android開発】アラートダイアログ(AlertDialog)にチェックボックスリストを追加する方法

次に、画面上のTextViewをタップすると、以下のようにチェックボックス付きのアラートダイアログが表示されます。

【Android開発】アラートダイアログ(AlertDialog)にチェックボックスリストを追加する方法

各項目をタップしてチェックを入れると、対応するトーストメッセージが表示されることが確認できます。これで、AlertDialogにチェックボックスリストを追加する実装は完了です。

  1. Androidでアラートダイアログを表示する方法【初心者向けサンプルコード付き】

    Androidでアラートダイアログ(AlertDialog)を表示する方法このチュートリアルでは、Androidアプリでアラートダイアログを表示する方法を解説します。サンプルとして、戻るボタンが押されたタイミングで「本当に終了しますか?」という確認ダイアログを表示する実装を紹介します。アプリの誤操作による終了を防ぎたい場合などに役立つ、定番のテクニックです。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを起動し、メニューから File → New Project を選択します。必要な項目(プロジェクト名、パッケージ名、保存場所など)を入力して

  2. AndroidのカスタムListViewに検索機能を実装する方法【サンプルコード付き】

    はじめに このチュートリアルでは、AndroidアプリのListView(リストビュー)に検索機能を実装する方法を解説します。EditTextに入力した文字列に応じて、表示中のリスト項目をリアルタイムで絞り込む仕組みを作成します。 手順1:新規プロジェクトを作成する Android Studioを開き、「File」→「New Project」を選択して、必要な項目をすべて入力し、新しいプロジェクトを作成します。 手順2:レイアウトファイル(activity_main.xml)を編集する res/layout/activity_main.xml に以下のコードを記述します。上部に検索ワードを入力