[Android] AlertDialog.Builder でダイアログを表示する

カタログ
  1. 1. ダイアログとボタンを表示する
  2. 2. 項目を選択するダイアログを表示する

ダイアログとそのボタンを表示する。

ダイアログとボタンを表示する

  • AlertDialog.Builder でダイアログを作成
  • AlertDialog.Builder#set*Buttonメソッドでダイアログボタンをセット。* の部分は Positive, Neutral, Negative の3つ。
  • AlertDialog.Builder#showメソッドで表示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package jp.fernweh;

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.LinearLayout;
import android.widget.TextView;

public class ButtonAlertDialoger extends Activity {

LinearLayout layout;
TextView text;
Button btn;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

text = new TextView(this);
text.setText("テキストビュー");
layout.addView(text);

btn = new Button(this);
btn.setText("ダイアログを表示");
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
displayDialog();
}
});
layout.addView(btn);
}

private void displayDialog() {
// AlertDialog.Builder でダイアログを作成
AlertDialog.Builder dlg = new AlertDialog.Builder(this);
// ダイアログのタイトルをセット
dlg.setTitle("Test Dialog");
// ダイアログのメッセージをセット
dlg.setMessage("Test Message");

// AlertDialog.Builder#setPositiveButton
// OK とか YES とか。左に配置される
dlg.setPositiveButton("おk", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
text.setText("『おk』を押しました");
}
});

// AlertDialog.Builder#setNeutralButton
// CANCEL とか。真ん中に配置される
dlg.setNeutralButton("キャンセル", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
text.setText("『キャンセル』を押しました");
}
});

// AlertDialog.Builder#setNegativeButton
// No とか。右に配置される
dlg.setNegativeButton("ダメ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
text.setText("『ダメ』を押しました");
}
});

// これを忘れるとダイアログは表示されないよ
dlg.show();
}
}

ダイアログを表示している画像

項目を選択するダイアログを表示する

AlertDialog.Builder#setItems(CharSequence[] items, DialogInterface.OnClickListener listener)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package jp.fernweh;

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.LinearLayout;
import android.widget.TextView;

public class ItemsAlertDialoger extends Activity {

LinearLayout layout;
TextView text;
Button btn;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

text = new TextView(this);
text.setText("テキストビュー");
layout.addView(text);

btn = new Button(this);
btn.setText("ダイアログを表示");
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
displayDialog();
}
});
layout.addView(btn);
}

private void displayDialog() {

AlertDialog.Builder dlg = new AlertDialog.Builder(this);
dlg.setTitle("Select Dialog");
// dlg_select.setMessage("message"); これを消してなくてハマった…

String[] items = { "One", "Two", "Three" };
dlg.setItems(items, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
text.setText("いち");
break;

case 1:
text.setText("に");
break;

case 2:
text.setText("さん");
break;

default:
text.setText("でふぉると");
break;
}

}
});
dlg.show();
}
}

アイテムリストのダイアログを表示した画像

関連があるかもしれない記事