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

【Android】タイトルなしのダイアログボックスを作成する方法|サンプルコード付きで解説

このチュートリアルでは、Androidでタイトルのないダイアログボックスを作成する方法を、サンプルコードとともに段階的に解説します。AlertDialogの基本的な使い方から、OK・キャンセルボタンの実装、タイトルを非表示にするテクニックまで、初心者の方にもわかりやすくまとめました。

作成するアプリの概要

EditTextに入力されたテキストに対して「Clear Data」ボタンをタップすると確認ダイアログが表示され、「OK」を押すとテキストがクリアされる、シンプルなアプリです。

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

Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要事項をすべて入力して、新しいプロジェクトを作成してください。

手順2:レイアウトファイルを編集する

以下のコードをres/layout/activity_main.xmlに追加します。テキスト入力用のEditTextと、データ消去用のButtonを配置したシンプルなレイアウトです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/RelativeLayout01"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Dialog">
    <EditText android:id="@+id/EditText01" android:text="AlertDialog Demo"
        android:layout_height="50dip" android:layout_width="180dip">
    </EditText>
    <Button android:id="@+id/Button01" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_below="@+id/EditText01"
        android:text="Clear Data">
    </Button>
</RelativeLayout>

手順3:MainActivity.javaを実装する

以下のコードをsrc/MainActivity.javaに記述します。

package com.example.sample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Dialog extends AppCompatActivity {
    Button Clear;
    EditText edit_data;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Clear=(Button)findViewById(R.id.Button01);
        edit_data=(EditText)findViewById(R.id.EditText01);
        Clear.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder=new AlertDialog.Builder(Dialog.this);
                // タイトルを設定
                builder.setTitle("Confirm");
                // メッセージを設定
                builder.setMessage("Do you want to Clear?");
                builder.setPositiveButton("OK",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // OKボタン押下時にEditTextの内容をクリア
                        edit_data.setText("");
                        // トーストメッセージを表示
                        Toast.makeText(getApplicationContext(), "Your text has been cleared", Toast.LENGTH_LONG).show();
                    }
                });
                builder.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                // ダイアログを生成
                AlertDialog alertdialog=builder.create();
                // ダイアログを表示
                alertdialog.show();
            }
        });
    }
}

タイトルを表示しないダイアログにするには?

ダイアログからタイトルを除きたい場合は、builder.setTitle("Confirm"); の行を削除するだけでOKです。setTitle() を呼び出さなければ、タイトル領域のないスッキリとしたダイアログボックスが表示されます。また、条件によってタイトルの有無を切り替えたい場合は、builder.setTitle(null); を使う方法もあります。

補足:AndroidXへの読み替えについて

本サンプルは旧サポートライブラリの android.support.v7.app.AppCompatActivity を使用していますが、最近のAndroid Studioで新規プロジェクトを作成すると、デフォルトでAndroidXの androidx.appcompat.app.AppCompatActivity が適用されます。ビルドエラーが出る場合は、import文をAndroidXのものに置き換えてください。

手順4:AndroidManifest.xmlを編集する

以下のコードをManifests/AndroidManifest.xmlに追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Dialog">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリを実行してみよう

それでは、実際にアプリを起動してみましょう。ここでは、実機のAndroidスマートフォンをPCに接続しているものとして説明します。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの【Android】タイトルなしのダイアログボックスを作成する方法|サンプルコード付きで解説(Run)アイコンをクリックします。接続したモバイルデバイスを選択すると、端末に以下のような初期画面が表示されます。

【Android】タイトルなしのダイアログボックスを作成する方法|サンプルコード付きで解説


  1. 【Android】ダイアログの外側をタップしてダイアログを閉じる方法

    この記事では、Androidアプリにおいてダイアログボックスの外側をタップした際にダイアログを閉じる(dismissする)方法を解説します。 ポイントとなるのは setCanceledOnTouchOutside(true) メソッドです。このメソッドに true を渡すことで、ダイアログの外側がタップされると自動的にダイアログが閉じられるようになります。 実装手順 ステップ1:新規プロジェクトの作成 Android Studioで新しいプロジェクトを作成します。「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 ステップ2:レイアウト

  2. Google APIを使わずにAndroidで音声認識機能を実装する方法【サンプルコード付き】

    はじめに このチュートリアルでは、外部のGoogle APIを直接呼び出すことなく、Androidフレームワークに組み込まれたSpeechRecognizerクラスを活用して、音声認識機能を備えたアプリを開発する手順を解説します。マイクから拾った音声をリアルタイムに解析し、認識結果をテキストとして画面に表示するシンプルなサンプルです。 ステップ1:Android Studioで新規プロジェクトを作成する Android Studioを起動し、メニューから「File」⇒「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。 ステップ2:レイ