带有选项的AlertDialog

本文介绍了一个关于Android应用中使用对话框的例子,包括如何通过点击按钮弹出具有多个选项的对话框,并根据用户的选择显示不同的内容。

点击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 };



转载于:https://www.cnblogs.com/bigmengzi/archive/2011/12/10/2283593.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值