AlertDialog创建6种对话框的用法

转自:http://www.2cto.com/kf/201603/491719.html

AlertDialog生成的对话框可分为4个区域:图标区,标题区,内容区,按钮区

结构如图:
\

AlertDialog对话框的使用:

1,创建AlertDialog.Builder对象
2,调用Builder对象的setTitle()设置标题,setIcon设置图标
3,调用Builder对象的相关方法设置内容,AlertDialog提供如下六中设置指定对话框的内容:

setMessage();设置简单文本框的内容
setItems();设置简单列表的内容,数组
setSingleChoiceItems();;设置单选列表的内容,内容参数可以是数组Cursor,ListAdapter
setMultiChoiceItems();设置多选列表项的内容,内容参数可以是数组,Cursor
setAdapter();设置内容,内容是ListAdapter,常用的BaseAdapter,SimpleAdapter,ArrayAdapter
setView();设置内容,参数是自定义的View
4,调用Builder对象的setPositiveButton()和 setNegativeButton()设置按钮和监听器
5,调用Builder对象的create()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法显示对话框

 

总之:调用Builder对象设置图标,标题,内容,按钮,在create(),show()

代码模板:

 

?
1
2
3
4
5
6
7
new AlertDialog.Builder( this )
             // 设置对话框标题
             .setTitle( "简单对话框" )
             // 设置图标
             .setIcon(R.drawable.tools)
                        //设置内容,可代替
             .setMessage( "对话框的测试内容\n第二行内容" ).setPositiveButton( "确定" ,listener).setNegativeButton( "取消" ,listener).create().show();
acitivity_main.xml

 

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!--?xml version= "1.0" encoding= "utf-8" ?-->
<linearlayout android:id= "@+id/root" android:layout_height= "match_parent" android:layout_width= "match_parent" android:orientation= "vertical" xmlns:android= "http://schemas.android.com/apk/res/android" >
 
     <textview android:id= "@+id/textView1" android:layout_height= "wrap_content" android:layout_width= "fill_parent" android:text= "TextView" >
 
     <tablelayout android:layout_height= "wrap_content" android:layout_width= "match_parent" >
 
         <tablerow android:gravity= "center_horizontal" android:id= "@+id/tableRow1" android:layout_height= "wrap_content" android:layout_width= "fill_parent" ><button android:id= "@+id/button1" android:layout_height= "wrap_content" android:layout_width= "wrap_content" android:onclick= "simple" android:text= "简单文本" ></button><button android:id= "@+id/button2" android:layout_height= "wrap_content" android:layout_width= "wrap_content" android:onclick= "simpleList" android:text= "数组列表" ></button><button android:id= "@+id/button3" android:layout_height= "wrap_content" android:layout_width= "wrap_content" android:onclick= "singleChoice" android:text= "单选列表" >
 
         
 
         <tablerow android:gravity= "center_horizontal" android:id= "@+id/tableRow2" android:layout_height= "wrap_content" android:layout_width= "wrap_content" >
 
             </tablerow></button><button android:id= "@+id/button4" android:layout_height= "wrap_content" android:layout_width= "wrap_content" android:onclick= "multiChoice" android:text= "多选列表" ></button><button android:id= "@+id/button5" android:layout_height= "wrap_content" android:layout_width= "wrap_content" android:onclick= "customList" android:text= "自定义列表" ></button><button android:id= "@+id/button6" android:layout_height= "wrap_content" android:layout_width= "wrap_content" android:onclick= "customView" android:text= "自定义View" ></button></tablerow></tablelayout></textview></linearlayout>
\

MainActivity.java

 

 

 

?
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
package com.hust.alertdialogtest;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.TableLayout;
import android.widget.TextView;
 
/*AlertDialog对话框的使用:
  * AlertDialog对话框有四个区域:图标区,标题区,内容区,按钮区
  * 1,创建AlertDialog.Builder对象
  * 2,调用Builder对象的setTitle()设置标题,setIcon设置图标
  * 3,调用Builder对象的相关方法设置内容
  *        setMessage();设置简单文本框的内容
  *        setItems();设置简单列表的内容,数组
  *        setSingleChoiceItems();;设置单选列表的内容,内容参数可以是数组,Cursor,ListAdapter
  *        setMultiChoiceItems();设置多选列表项的内容,内容参数可以是数组,Cursor
  *        setAdapter();设置内容,内容是ListAdapter,常用的BaseAdapter,SimpleAdapter,ArrayAdapter
  *        setView();设置内容,参数是自定义的View
  * 4,调用Builder对象的setPositiveButton()和    setNegativeButton()设置按钮和监听器
  * 5,调用Builder对象的create()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法显示对话框
  *   
  *       
  *  总之:调用Builder对象设置图标,标题,内容,按钮,在create(),show()     
  * */
public class MainActivity extends Activity {
    TextView show;
    String[] items= new String[]{
            "湖北省" , "福建省" , "贵州省" , "四川省"
    };
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         show=(TextView) findViewById(R.id.textView1);
     }
   
     /*简单文本对话框:builder.setMessage()设置内容*/ 
     public void simple(View v){
         AlertDialog.Builder  builder= new AlertDialog.Builder( this );
         builder.setTitle( "简单对话框" );
         builder.setIcon(R.drawable.tools);
         builder.setMessage( "这是简单文本对话框\n第二行内容" );
         
         //为builder对象添加确定按钮,不过这里嵌套了一个函数
         setPositiveButton(builder);
         //为builder对象添加取消按钮
         builder=setNegativeButton(builder);
         
         //builder创建对话框对象AlertDialog
         AlertDialog simpledialog=builder.create();
         simpledialog.show();
     }
     /*简单列表对话框(数组对话框):builder.setItems()设置内容*/
     public void simpleList(View v){
         AlertDialog.Builder builder= new AlertDialog.Builder( this );
         builder.setTitle( "数组列表对话框" );
         builder.setIcon(R.drawable.tools);
         builder.setItems(items, new OnClickListener(){
 
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 // TODO Auto-generated method stub
                 show.setText( "你单击了 " +items[which]);
             }
             
         });    
         setPositiveButton(builder);
         builder=setNegativeButton(builder);
         
         AlertDialog simplelistdialog=builder.create();
         simplelistdialog.show();
     }
     /*单选列表项对话框:builder.setSingleChoiceItems()设置内容,内容参数可以是数组,Cursor,ListAdapter*/
     public void singleChoice(View v){
         AlertDialog.Builder builder= new AlertDialog.Builder( this );
         builder.setTitle( "单选列表项对话框" );
         builder.setIcon(R.drawable.tools);
         //设置单选列表项,默认选中第二项
         builder.setSingleChoiceItems(items, 1 , new OnClickListener(){
 
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 // TODO Auto-generated method stub
                 show.setText( "你单击了 " +items[which]);
             }
             
         });    
         setPositiveButton(builder);
         builder=setNegativeButton(builder);
         
         AlertDialog simplechoicedialog=builder.create();
         simplechoicedialog.show();
     }
     /*
      *
      *多选列表项对话框: builder.setMultiChoiceItems()设置内容,参数可以是数组,Cursor数据库返回结果集
      *
      * AlertDialog.Builder.setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, OnMultiChoiceClickListener listener)*/
     public void multiChoice(View v){
         AlertDialog.Builder builder= new AlertDialog.Builder( this );
         builder.setTitle( "多选列表项对话框" );
         builder.setIcon(R.drawable.tools);
         //设置单多选列表项,默认选中第二项,第四项
         builder.setMultiChoiceItems(items, new boolean []{ false , true , false , true }, new OnMultiChoiceClickListener(){
 
             @Override
             public void onClick(DialogInterface dialog, int which,
                     boolean isChecked) {
                 // TODO Auto-generated method stub
                 //添加处理方法
             }
             
         });    
         
         setPositiveButton(builder);
         builder=setNegativeButton(builder);
         
         AlertDialog simplechoicedialog=builder.create();
         simplechoicedialog.show();
     }
     /*自定义Adapter对话框:builder.setAdapter设置内容,内容是ListAdapter,常用的BaseAdapter,SimpleAdapter,ArrayAdapter*/   
     public void customList(View v){
         AlertDialog.Builder  builder= new AlertDialog.Builder( this );
         builder.setTitle( "自定义Adapter对话框" );
         builder.setIcon(R.drawable.tools);
         builder.setAdapter( new ArrayAdapter<string>( this ,R.layout.array_item,items), new OnClickListener(){
 
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 // TODO Auto-generated method stub
                 show.setText( "你单击了 " +items[which]);
             }
             
         });
         
         //为builder对象添加确定按钮,不过这里嵌套了一个函数
         setPositiveButton(builder);
         //为builder对象添加取消按钮
         builder=setNegativeButton(builder);
         
         //builder创建对话框对象AlertDialog
         AlertDialog adapterdialog=builder.create();
         adapterdialog.show();
         
     }
     /*自定义View对话框:builder.setView()设置View*/
     public void customView(View v){
         //获取xml布局文件对象
         TableLayout loginform=(TableLayout) getLayoutInflater().inflate(R.layout.login, null );
         
         AlertDialog.Builder  builder= new AlertDialog.Builder( this );
         builder.setTitle( "自定义View对话框" );
         builder.setIcon(R.drawable.tools);
         //设置对话框显示的View组件
         builder.setView(loginform);
         
         //为builder对象添加确定按钮,不过这里嵌套了一个函数
         setPositiveButton(builder);
         //为builder对象添加取消按钮
         builder=setNegativeButton(builder);
         
         //builder创建对话框对象AlertDialog
         AlertDialog viewdialog=builder.create();
         viewdialog.show();
         
         
     }
     //返回对象是原来的Builder对象
     private  AlertDialog.Builder  setPositiveButton(AlertDialog.Builder builder) {
         // TODO Auto-generated method stub
          return builder.setPositiveButton( "确定" , new OnClickListener(){
 
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 // TODO Auto-generated method stub
                 show.setText( "单击了【确定】按钮!" );
             }
              
          });
     }
      
     //返回对象是Builder对象
     private  AlertDialog.Builder  setNegativeButton(AlertDialog.Builder builder) {
         // TODO Auto-generated method stub
          return builder.setNegativeButton( "取消" , new OnClickListener(){
 
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 // TODO Auto-generated method stub
                 show.setText( "单击了【取消】按钮!" );
             }
              
          });
     }
 
 
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         // Inflate the menu; this adds items to the action bar if it is present.
         getMenuInflater().inflate(R.menu.main, menu);
         return true ;
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         // Handle action bar item clicks here. The action bar will
         // automatically handle clicks on the Home/Up button, so long
         // as you specify a parent activity in AndroidManifest.xml.
         int id = item.getItemId();
         if (id == R.id.action_settings) {
             return true ;
         }
         return super .onOptionsItemSelected(item);
     }
}
</string>

 

 

\
\

\

\

\

\


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是实现的代码示例: ``` // 获取LayoutInflater对象 LayoutInflater inflater = LayoutInflater.from(context); // 加载对话框布局 View view = inflater.inflate(R.layout.dialog_layout, null); // 创建AlertDialog.Builder对象 AlertDialog.Builder builder = new AlertDialog.Builder(context); // 设置对话框布局 builder.setView(view); // 获取TextView和RadioButton控件 TextView textView1 = view.findViewById(R.id.text_view1); TextView textView2 = view.findViewById(R.id.text_view2); RadioButton radioButton1 = view.findViewById(R.id.radio_button1); RadioButton radioButton2 = view.findViewById(R.id.radio_button2); RadioButton radioButton3 = view.findViewById(R.id.radio_button3); RadioButton radioButton4 = view.findViewById(R.id.radio_button4); // 设置TextView文本 textView1.setText("TextView1"); textView2.setText("TextView2"); // 设置RadioButton文本 radioButton1.setText("RadioButton1"); radioButton2.setText("RadioButton2"); radioButton3.setText("RadioButton3"); radioButton4.setText("RadioButton4"); // 给RadioButton添加点击事件 radioButton1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // do something when radioButton1 is clicked } }); radioButton2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // do something when radioButton2 is clicked } }); radioButton3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // do something when radioButton3 is clicked } }); radioButton4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // do something when radioButton4 is clicked } }); // 创建对话框并显示 AlertDialog dialog = builder.create(); dialog.show(); ``` 在代码中,我们给每个RadioButton控件都添加了一个`OnClickListener`接口,当点击对应的RadioButton时,就会执行相应的操作。你可以根据实际需求来修改`setOnClickListener`方法的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值