ここでは、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 件のコメント:
コメントを投稿