libro
www.tuyano.com
Google androidプログラミング入門

GUI、再び! (2/7)

作成:2010-06-17 10:51
更新:2010-06-17 10:52

■アラートダイアログの表示

トーストは、勝手に消えてしまいますから、もっとしっかりとユーザーに伝えたい!というときは、やはりアラートダイアログを使ったほうが良いでしょう。アラートダイアログは、画面に小さいダイアログウインドウを表示するもので、これはほぼ同様のものがパソコンでも多用されていますね。

アラートダイアログは、「AlertDialog」というクラスにそのための機能が用意されているのですが、実はnew AlertDialogしてそのまま使うことができません。AlertDialogはコンストラクタがProtectedになっており、勝手にインスタンスをぼこぼこ作れないようになっているのです。

では、どうするのか。実は、AlertDialogには、「Builder」というNested Classes(入れ子クラス)が用意されており、これを利用するようになっているのです。これは以下のように呼び出します。
AlertDialog.Builder 変数 = new AlertDalog.Builder( [Context] );
引数には、アラートを表示するContextを指定します。これは、まぁ普通は「this」を渡せばいいと考えてよいでしょう。

作成されたAlertDialog.Builderは、まだ何も表示が設定されていませんから、まず表示するテキストを設定してやります。
[AlertDialog.Builder].setMessage( 表示するテキスト );
引数に表示するテキストを指定することで、メッセージが設定されます。後は、トーストと同じように「show」メソッドを呼び出して画面に表示するだけです。

以下に簡単なサンプルをあげておきましょう。アプリを起動すると、画面にアラートダイアログが現れます。これはボタンなどはないので、「戻る」ボタンを押して消してください。見た目はトーストと似ていますが、こちらはユーザーが操作して消すまでずっと表示されています。重要なメッセージはこちらを使うべきでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package jp.tuyano;

import android.app.*;
import android.os.Bundle;
import android.view.Window;

public class SampleApp extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage("これはアラートのテストです。");
		builder.show();
	}

}

※関連コンテンツ

「Google androidプログラミング入門」に戻る