ここでは、AlertDialog クラスを使用してダイアログを生成し、ボタンクリック時にダイアログを表示するサンプルを紹介します。
ダイアログを生成し、ボタンクリック時に表示する手順は以下のようになります。
- AlertDialog.Builder (AlertDialog を作成するためのクラス) を生成
- 1.に、タイトル、表示メッセージ、ボタン等を設定
- AlertDialog を生成
- ボタンクリックでダイアログを表示
■ リソース
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/btnShow" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn_exe" /> </LinearLayout>
string.xml
<resources> <string name="btn_exe">実行</string> <string name="dlg_title">実行確認</string> <string name="dlg_msg">実行します。よろしいですか?</string> </resources>
■ ソース
import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class AlertDlgSampleActivity extends Activity { AlertDialog.Builder mAlertDlg; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 1. AlertDialog.Builder クラスのインスタンスを生成 AlertDialog.Builder builder = new AlertDialog.Builder(this); // 2. ダイアログタイトル、表示メッセージ、ボタンを設定 builder.setTitle(R.string.dlg_title); builder.setMessage(R.string.dlg_msg); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // OK ボタンクリック処理 Toast.makeText(AlertDlgSampleActivity.this, "OK Click", Toast.LENGTH_SHORT).show(); }); builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // Cancel ボタンクリック処理 Toast.makeText(AlertDlgSampleActivity.this, "Cancel Click", Toast.LENGTH_SHORT).show(); } }); // 3. ダイアログを生成 mAlertDlg = builder.create(); // 4. ボタンクリック時にダイアログを表示 Button btnExe = (Button)findViewById(R.id.btnExe); btnExe.setOnClickListener(new OnClickListener() { public void onClick(View view) { // ダイアログ表示 mAlertDlg.show(); } }); } }
■ 説明
それぞれの処理について説明していきます。1. AlertDialog.Builder クラスのインスタンスを生成
ダイアログを生成するために、 AlertDialog.Builder クラスのインスタンスを生成します。
AlertDialog.Builder mAlertDlg; mAlertDlg = new AlertDialog.Builder(this);
2. タイトル、メッセージ、ボタンを設定
setTitle でダイアログのタイトル、
setMessage で表示するメッセージ、
setPositiveButton, setNegativeButton で、OK, Cancel ボタン、
を設定します。
mAlertDlg.setTitle(getString(R.string.dlg_title)); mAlertDlg.setMessage(getString(R.string.dlg_msg)); mAlertDlg.setPositiveButton( ~ ); mAlertDlg.setNegativeButton( ~ );
クリック処理が不要な場合は null を指定します。
また、ボタンにはもうひとつ setNeutralButton もあります。
各ボタンで機能的な違いはありません。わかりやすいように Negative, Positive 等の名称に分かれているだけです。
但し、同じ種類のボタンは 2 つ以上追加できないので、ボタンは最大 3 つになります。
また、その他の設定として、ダイアログを端末の戻るボタンで閉じることができるかどうかを
setCancelable メソッドで設定できます。
(引数 = true で閉じることができる。 false で閉じることができない 用に設定)
3. ダイアログを生成
AlertDialog.Builder クラスの Create メソッドで、AlertDialog を生成します。
mAlertDlg = builder.create();
4. ボタンクリックでダイアログを表示
ボタンにクリックリスナを設定し、その中の OnClick でダイアログを表示します。
ダイアログの表示には、 AlertDialog クラスの show メソッドを使用します。
Button btnExe = (Button)findViewById(R.id.btnExe); btnExe.setOnClickListener(new OnClickListener() { public void onClick(View view) { // ダイアログ表示 mAlertDlg.show(); } });
0 件のコメント:
コメントを投稿