Javaプログラミング/Javaプログラミング関連情報

androidのダイアログを使いこなそう!(4ページ目)

画面にメッセージを表示するダイアログの基本をマスターしましょう。

執筆者:掌田 津耶乃

独自コンポーネントを表示する


このアラートは、簡単にメッセージを表示できるのは便利なのですが、もっと本格的なダイアログとして活用するためにはボタン1つだけの画面ではあまり役に立ちません。ダイアログの表示をカスタマイズする必要があります。

このAlertDialog.showでは、あらかじめ用意しておいたViewをそのままダイアログ内にはめ込んで表示させることもできるようになっています。これを利用すれば、もっと複雑なダイアログを自分で用意することが可能になります。実際にやってみましょう。

package jp.allabout.android;

import jp.allabout.android.R;
import android.app.*;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;

public class MyAndy extends Activity {
  private Activity me;
  TextView text;
  EditText msgedit;

  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    this.me = this;
    // コンポーネントの設定
    Button btn = (Button) this.findViewById(R.id.button);
    text = (TextView)this.findViewById(R.id.text);
    msgedit = new EditText(this);

    // イベント組み込み
    btn.setOnClickListener(new BtnAdapter());
  }

  // イベントクラス
  class BtnAdapter implements OnClickListener {
    @Override
    public void onClick(View v) {
      OkAdapter adapter = new OkAdapter();
      AlertDialog.show(me, "テキストを入力", msgedit, "ok",
          adapter, "cancel", adapter, true, new CancelAdapter());
    }
  }
  
  class OkAdapter implements
      android.content.DialogInterface.OnClickListener {

    @Override
    public void onClick(DialogInterface arg0, int arg1) {
      text.setText("あなたは、" + msgedit.getText() + "と書いた。");
    }
    
  }
  
  class CancelAdapter implements
      android.content.DialogInterface.OnCancelListener {

    @Override
    public void onCancel(DialogInterface arg0) {
      text.setText("どうしてキャンセルするの?");
    }
    
  }
}

テキストを入力するダイアログ。okすると入力したテキストを表示する。


ここでは、EditTextコンポーネントをあらかじめ用意しておき、これをalertにはめ込んで表示させています。今回のAlertDialog.showは、更にまた引数が増えていますね。

AlertDialog.show([Context],タイトル,[View],
    ボタン名1,ボタンクリック時のリスナー1,
    ボタン名2,ボタンクリック時のリスナー2,
    キャンセル,キャンセル時のリスナー);

[Context]――ベースとなるContext(Activity)
タイトル――タイトルのテキスト
View――表示するViewコンポーネント
ボタン名1――1つ目のボタンに表示されるテキスト
ボタンクリック時のリスナー1――1つ目のボタンのOnClickListener
ボタン名2――2つ目のボタンに表示されるテキスト
ボタンクリック時のリスナー2――2つ目のボタンのOnClickListener
キャンセル――キャンセル可能かどうかを示すboolean値
キャンセル時のリスナー――キャンセル時のOnCancelListener


これで、独自のViewと2つのボタンを表示したダイアログが表示されます。ここでは、サンプルということで2つのボタンは同じリスナーを設定しておきましたが、もちろんそれぞれに別々の処理を用意することもできます。

これで、テキストの入力やラジオボタン、チェックボックスといったものをもったダイアログなど、自在に作って利用することができるようになります。ダイアログといえども、自由に使えるようになればなかなか強力な武器となるのです。
【編集部おすすめの購入サイト】
Amazonで Java 関連の書籍をチェック!楽天市場で Java 関連の書籍をチェック!
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます