読者です 読者をやめる 読者になる 読者になる

Androidプログラミングブログ

Androidプログラミングを勉強していく中でわかったことをメモする

【Androidプログラミング入門 #029】ボタン2つの確認ダイアログ(AlertDialog)を表示する

はじめに

ユーザーに確認を求めるダイアログを表示したい。

表示したい内容は

  • タイトル
  • メッセージ
  • OKボタン
  • キャンセルボタン

です。

AlertDialogクラスを使うと作成できるようだ。
ここでは画面のボタンを押すと確認ダイアログが表示され、
「表示する」を押すとテキストを表示し、
「キャンセル」を押すとテキストを非表示にするサンプルを作成します。

1. プロジェクト作成

f:id:fjswkun:20151110215054p:plain

f:id:fjswkun:20151110215116p:plain

f:id:fjswkun:20151110215139p:plain

f:id:fjswkun:20151110215444p:plain

2. 画面レイアウトの作成

TextViewとButtonを配置します。

content_main.xmlを開く。
プロジェクト新規作成時に追加されているTextViewの修正と、
ボタンを配置する。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_main" tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:text="" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:text="押す "/>
</RelativeLayout>

3. 確認ダイアログ表示機能の作成

MainActivity.javaを開き、onCreateメソッドを修正します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    final TextView textView = (TextView)findViewById(R.id.textView);

    Button button = (Button)findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // 確認ダイアログの作成
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
            alertDialog.setTitle("確認");
            alertDialog.setMessage("テキストビューに文字列を表示しますか?");
            alertDialog.setPositiveButton("表示する", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    textView.setText("こんにちは");
                }
            });
            alertDialog.setNegativeButton("キャンセル", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    textView.setText("");
                }
            });
            alertDialog.create().show();
        }
    });
}

4. 実行

実行してみます。

アプリ起動 「押す」ボタンを押す

f:id:fjswkun:20151110220110p:plain

「表示する」を押す

f:id:fjswkun:20151110220135p:plain

文字列を表示

f:id:fjswkun:20151110220143p:plain

うまく行かなかった方はこちらからサンプルをダウンロード。

SampleAlertDialg.zip - Google ドライブ

参考情報

参考

Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)

Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)

開発用デバイス

Androidの勉強をはじめた人は知っているようにエミュレーターはちょー遅い。
開発用に安いAndroidを買えば、勉強がはかどります!
iPhoneと比較すると安いので買ったほうがいいと思います。

おすすめデバイス

勉強用に使うだけなので価格が高い最新デバイスは必要ないと思います。
最新のデバイスは一人前のAndroidプログラマーになったら購入を検討しましょう。

nexus5 16GBASUS Nexus7 ( 2013 ) TABLET

その他に探すなら↓から。
Android nexus5を勉強用に購入