android学习日记03--常用控件Dialog

9、Dialog
对话框,要创建对话框之前首先要创建Builder类创建者
Builder是AlertDialog的子类,而且还是它的内部类

setPositiveButton --设置最左边的按钮
setNeutralButton --设置中间的按钮
setNegativeButton --设置最右边的按钮

 1         builder = new Builder(MainActivity.this);
 2         builder.setIcon(android.R.drawable.ic_dialog_info);
 3         builder.setTitle("dialg标题");
 4         //builder.setMessage("dialog对话框内容");
 5         
 6         builder.setPositiveButton("Yes", new OnClickListener() {
 7             
 8 
 9             @Override
10             public void onClick(DialogInterface dialog, int which) {
11                 // TODO Auto-generated method stub
12                 
13             }
14         });
15         
16 //        builder.setNeutralButton("back", new OnClickListener() {
17 //            
18 //            @Override
19 //            public void onClick(DialogInterface dialog, int which) {
20 //                // TODO Auto-generated method stub
21 //                
22 //            }
23 //        });
24         
25         builder.setNegativeButton("No", new OnClickListener() {
26             
27             @Override
28             public void onClick(DialogInterface dialog, int which) {
29                 // TODO Auto-generated method stub
30                 
31             }
32         });
33         
34         builder.setView(new CheckBox(this));
35         
36 
37         
38         builder.show();
View Code

 

由于 Builder 设计模式特性,上面代码也可以这样简写

 1 //        new Builder(this)
 2 //        .setIcon(android.R.drawable.ic_dialog_info)
 3 //        .setTitle("dialg标题")
 4 //        .setMessage("dialog对话框内容")
 5 //        .setPositiveButton("yes", new OnClickListener() {
 6 //        
 7 //            @Override
 8 //            public void onClick(DialogInterface dialog, int which) {
 9 //                // TODO Auto-generated method stub
10 //                
11 //            }
12 //        })
13 //        .setNegativeButton("no", new OnClickListener() {
14 //            
15 //            @Override
16 //            public void onClick(DialogInterface dialog, int which) {
17 //                // TODO Auto-generated method stub
18 //                
19 //            }
20 //        })
21 //        .setView(new CheckBox(this))
22 //        .create()
23 //        .show();
View Code

 

builder.setView(new CheckBox(this));只能添加一个组件

如果添加多个组件,会被后面的覆盖掉

添加某些一组组件,还有对应函数

 

添加单选框

1 //        builder.setSingleChoiceItems(new String[] {"单选","单选"}, 1, new OnClickListener() {
2 //            
3 //            @Override
4 //            public void onClick(DialogInterface dialog, int which) {
5 //                // TODO Auto-generated method stub
6 //                
7 //            }
8 //        });
View Code

添加复习框

1 //        builder.setMultiChoiceItems(new String[] {"多选","多选"}, new boolean[] {false,true}, new OnMultiChoiceClickListener() {
2 //            
3 //            @Override
4 //            public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
5 //                // TODO Auto-generated method stub
6 //                
7 //            }
8 //        });
View Code

添加列表

1 //        builder.setItems(new String[] {"item1","item2","item3"}, new OnClickListener() {
2 //            
3 //            @Override
4 //            public void onClick(DialogInterface arg0, int arg1) {
5 //                // TODO Auto-generated method stub
6 //                
7 //            }
8 //        });
View Code

此外,还可以自定义布局文件,当作一个组件用setView()添加

1         LayoutInflater inflater = getLayoutInflater();
2         View layoutView = inflater.inflate(R.layout.dialogmain, (ViewGroup)findViewById(R.id.myLayout));
3         
4         builder.setView(layoutView);
View Code
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3  android:layout_height="wrap_content" android:layout_width="wrap_content"
 4  android:background="#ffffffff" android:orientation="horizontal"
 5  android:id="@+id/myLayout">
 6  <TextView 
 7      android:layout_height="wrap_content"
 8     android:layout_width="wrap_content"
 9     android:text="TextView" />
10  <EditText 
11      android:layout_height="wrap_content"
12      android:layout_width="wrap_content" 
13     />
14  <Button 
15      android:layout_height="wrap_content"
16      android:layout_width="wrap_content" 
17      android:text="btn1" 
18     />
19  <Button 
20      android:layout_height="wrap_content"
21      android:layout_width="wrap_content" 
22      android:text=" btn2" 
23     />
24 </LinearLayout>
View Code

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。