带有选项的AlertDialog

点击Button,具有3个选项的问题,点击不同选项后弹出新的dialog,复述所选项内容

strings.xml文件中定义了名为items_irdc_dialog为选项内容(item中)

 1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3
4 <string name="hello">咱们学校几号放假?</string>
5 <string name="app_name">selectdialog</string>
6
7 <array name="items_irdc_dialog">
8 <item>12月底</item>
9 <item>元旦一过</item>
10 <item>1月13号</item>
11 </array>
12
13 </resources>

1. 定义Button.OnClickListener对象showdialoglistener,实现onClick方法

2. 其中,生成AlertDialog.Builder,调用setItems(item_id,listener)方法中几个参数很重要,生成DialogInterface.OnClickListener对象,onClick方法中监听item的点击事件

3. onClick()方法中,根据which所标明的具体点击了哪一个item项,生成不同arraystr[which]的AlertDialog

4. 生成这个显示AlertDialog.Builder,setNeutralButton(button_name,listener)方法,大致同2

5. 第一层的对话框最后还调用了setNegativeButton(button_name,listener),onCLick()方法中调用dismiss()卸载对话框

 1 Button.OnClickListener showdialoglistener = new Button.OnClickListener() {
2 @Override
3 public void onClick(View v) {
4 new AlertDialog.Builder(mainActivity.this)
5 .setTitle("title")
6 .setItems(R.array.items_irdc_dialog,
7 new DialogInterface.OnClickListener() {
8 @Override
9 public void onClick(DialogInterface dialog,
10 int which) {
11 // TODO Auto-generated method stub
12 final int id = which;
13 CharSequence body = getString(R.string.hello);
14 String[] arraystr = getResources()
15 .getStringArray(
16 R.array.items_irdc_dialog);
17 new AlertDialog.Builder(mainActivity.this)
18 .setMessage(
19 body + "\n"
20 + arraystr[which])
21 .setNeutralButton(
22 "ok",
23 new DialogInterface.OnClickListener() {
24
25 @Override
26 public void onClick(
27 DialogInterface dialog,
28 int which) {
29 // TODO Auto-generated method stub
30 switch (id) {
31 case 0:
32 Toast.makeText(mainActivity.this,"common university",Toast.LENGTH_LONG).show();
33 break;
34 case 1:
35 Toast.makeText(mainActivity.this,"arty university",Toast.LENGTH_LONG).show();
36 break;
37 case 2:
38 Toast.makeText(mainActivity.this,"2B university",Toast.LENGTH_LONG).show();
39 break;
40 }
41
42 }
43 }).show();
44 }
45 })
46 .setNegativeButton("cancel",
47 new DialogInterface.OnClickListener() {
48 public void onClick(DialogInterface dialog,
49 int which) {
50 // TODO Auto-generated method stub
51 dialog.dismiss();
52
53 }
54 }).show();
55 }
56 };



posted @ 2011-12-10 22:00  captain_meng  阅读(1798)  评论(0编辑  收藏  举报