网络112 柳内恒
在手机软件开发中,必要时对话框可以给用户一种很清晰的感觉。可是对话框的种类比较,在什么情况下应该产生什么样的对话框呢?本文列举了7种常用的对话框,供初学开发者讨论讨论。
1、主界面是7个按钮,点击不同按钮弹出不同对话框。代码及效果图以下:
1
2
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 android:orientation="vertical" >
7
8 <Button
9 android:id&#61;"&#64;&#43;id/btnQueding"
10 android:layout_width&#61;"wrap_content"
11 android:layout_height&#61;"wrap_content"
12 android:layout_alignParentLeft&#61;"true"
13 android:layout_marginLeft&#61;"30dp"
14 android:text&#61;"确定" />
15
16 <Button
17 android:id&#61;"&#64;&#43;id/btnXuanZe"
18 android:layout_width&#61;"wrap_content"
19 android:layout_height&#61;"wrap_content"
20 android:layout_alignBaseline&#61;"&#64;&#43;id/btnQueding"
21 android:layout_alignBottom&#61;"&#64;&#43;id/btnQueding"
22 android:layout_marginLeft&#61;"20dp"
23 android:layout_toRightOf&#61;"&#64;&#43;id/btnQueding"
24 android:text&#61;"选择" />
25
26 <Button
27 android:id&#61;"&#64;&#43;id/btnDanXuan"
28 android:layout_width&#61;"wrap_content"
29 android:layout_height&#61;"wrap_content"
30 android:layout_alignParentRight&#61;"true"
31 android:layout_alignParentTop&#61;"true"
32 android:layout_marginRight&#61;"22dp"
33 android:text&#61;"单选" />
34
35 <Button
36 android:id&#61;"&#64;&#43;id/btnFuXuan"
37 android:layout_width&#61;"wrap_content"
38 android:layout_height&#61;"wrap_content"
39 android:layout_below&#61;"&#64;&#43;id/btnQueding"
40 android:layout_toLeftOf&#61;"&#64;&#43;id/btnXuanZe"
41 android:text&#61;"复选" />
42
43 <Button
44 android:id&#61;"&#64;&#43;id/btnLiBiao"
45 android:layout_width&#61;"wrap_content"
46 android:layout_height&#61;"wrap_content"
47 android:layout_alignLeft&#61;"&#64;&#43;id/btnXuanZe"
48 android:layout_below&#61;"&#64;&#43;id/btnXuanZe"
49 android:text&#61;"列表" />
50
51 <Button
52 android:id&#61;"&#64;&#43;id/ZiDingYi"
53 android:layout_width&#61;"wrap_content"
54 android:layout_height&#61;"wrap_content"
55 android:layout_alignBaseline&#61;"&#64;&#43;id/btnLiBiao"
56 android:layout_alignBottom&#61;"&#64;&#43;id/btnLiBiao"
57 android:layout_toLeftOf&#61;"&#64;&#43;id/btnDanXuan"
58 android:text&#61;"自定义" />
59
60 <Button
61 android:id&#61;"&#64;&#43;id/btnShuRu"
62 android:layout_width&#61;"wrap_content"
63 android:layout_height&#61;"wrap_content"
64 android:layout_alignLeft&#61;"&#64;&#43;id/ZiDingYi"
65 android:layout_alignParentTop&#61;"true"
66 android:text&#61;"输入" />
67
68
1 package cqvie.com;
2
3 import android.app.Activity;
4 import android.app.AlertDialog;
5 import android.os.Bundle;
6 import android.view.LayoutInflater;
7 import android.view.View;
8 import android.view.View.OnClickListener;
9 import android.widget.Button;
10 import android.widget.EditText;
11
12 public class DuiHuakuanActivity extends Activity implements OnClickListener {
13 /** Called when the activity is first created. */
14 &#64;Override
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.main);
18 btnQueDing&#61;(Button)findViewById(R.id.btnQueding);//注册按钮
19 btnXuanZe&#61;(Button)findViewById(R.id.btnXuanZe);
20 btnShuRu&#61;(Button)findViewById(R.id.btnShuRu);
21 btnDanXuan&#61;(Button)findViewById(R.id.btnDanXuan);
22 btnFuXuan&#61;(Button)findViewById(R.id.btnFuXuan);
23 btnLiBiao&#61;(Button)findViewById(R.id.btnLiBiao);
24 btnZiDingYi&#61;(Button)findViewById(R.id.ZiDingYi);
25
26 btnQueDing.setOnClickListener(this);//为按钮添加侦听器
27 btnXuanZe.setOnClickListener(this);
28 btnShuRu.setOnClickListener(this);
29 btnDanXuan.setOnClickListener(this);
30 btnFuXuan.setOnClickListener(this);
31 btnLiBiao.setOnClickListener(this);
32 btnZiDingYi.setOnClickListener(this);
33 }
34 Button btnQueDing,btnXuanZe,btnShuRu,btnDanXuan,btnFuXuan,btnLiBiao,btnZiDingYi;
35 &#64;Override
36 public void onClick(View arg0) {
37 // TODO Auto-generated method stub
38 Button b&#61;(Button) arg0;
39 if(b.getId()&#61;&#61;R.id.btnQueding)
40 {
41 queding();
42 }
43 if(b.getId()&#61;&#61;R.id.btnXuanZe)
44 {
45 xuanze();
46 }
47 if(b.getId()&#61;&#61;R.id.btnShuRu)
48 {
49 shuru();
50 }
51 if(b.getId()&#61;&#61;R.id.btnDanXuan)
52 {
53 danxuan();
54 }
55 if(b.getId()&#61;&#61;R.id.btnFuXuan)
56 {
57 fuxuan();
58 }
59 if(b.getId()&#61;&#61;R.id.btnLiBiao)
60 {
61 libiao();
62 }
63 if(b.getId()&#61;&#61;R.id.ZiDingYi)
64 {
65 zidingyi();
66 }
67 }
68 }
2、点击“确定”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;
1 public void queding()
2 {
3 //退出确认对话框
4 AlertDialog.Builder builder&#61; new AlertDialog.Builder(this);
5 builder.setTitle("提示");
6 builder.setMessage("确定退出吗&#xff1f;");
7 builder.setPositiveButton("确认", null);
8 builder.setNegativeButton("取消",null);
9 builder.create().show();
10 }
3、点击“选择”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;
1 public void xuanze()
2 {
3 //类型于选择题的对话框
4 AlertDialog.Builder lnh&#61; new AlertDialog.Builder(this);
5 lnh.setIcon( android.R.drawable.btn_star);
6 lnh.setTitle("喜好调查");
7 lnh.setMessage("你喜欢李连杰的电影吗&#xff1f;");
8 lnh.setPositiveButton("很喜欢",null);
9 lnh.setNeutralButton("一般",null);
10 lnh.setNegativeButton("不喜欢",null);
11 lnh.create().show();
12 }
4、点击“输入”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;
1 public void shuru()
2 {
3 //带输入的对话框
4 new AlertDialog.Builder(this)
5 .setTitle("请输入")
6 .setIcon(android.R.drawable.ic_dialog_info)//设置提示图标
7 .setView(new EditText(this))
8 .setPositiveButton("确定", null)
9 .setNegativeButton("取消", null).show();
10 }
5、点击“单选”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;
1 public void danxuan()
2 {
3 //单选对话框
4 new AlertDialog.Builder(this)
5 .setTitle("单选框")
6 .setSingleChoiceItems(new String[] { "北京", "上海","重庆","天津","湖南", "湖北","江西","江苏","香港", "台湾","河南","河北" }, 0, null)
7 .setPositiveButton("确定", null)
8 .setNegativeButton("取消", null).show();
9 }
6、点击“复选”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;
1 public void fuxuan()
2 {
3 //复选对话框
4 new AlertDialog.Builder(this).setTitle("复选框")
5 .setMultiChoiceItems(new String[] { "张三", "李四","王二","麻子" }, null, null)
6 .setPositiveButton("确定", null)
7 .setNegativeButton("取消", null).show();
8 }
7、点击“列表”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;
1 public void libiao()
2 {
3 //列表框对话框
4 new AlertDialog.Builder(this).setTitle("列表框")
5 .setItems(new String[] { "致逝去青春", "中南海保镖","叶问II" }, null)
6 .setNegativeButton("确定", null).show();
7 }
8、点击“列表”按钮弹出对话框&#xff0c;这个对话框相对来说要复杂一&#xff0c;首先我们要在layout中新建一个*.xml文件&#xff08;如&#xff1a;buju.xml&#xff09;&#xff0c;然后再调用这个文件来布局。代码及效果图如下&#xff1a;
1
2
4 android:background&#61;"#ffffffff" android:orientation&#61;"horizontal"
5 android:id&#61;"&#64;&#43;id/buju" >
6
8 android:id&#61;"&#64;&#43;id/tvname" android:text&#61;"姓名&#xff1a;" />
9
11
12
1 public void zidingyi()
2 {
3 //自定义对话框
4 LayoutInflater inflater &#61; getLayoutInflater();
5 View layout &#61; inflater.inflate(R.layout.buju,null);
6 new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
7 .setPositiveButton("确定", null)
8 .setNegativeButton("取消", null).show();
9
10 }
写下这往篇博客有两个用意&#xff1a;一是为广大Android软件开发爱好者提供交流&#xff0c;二是为自己以后复习之用。