android 对话框

main.xml //主布局文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:gravity="center_horizontal">
 7 <!-- 显示一个普通的文本编辑框组件 -->
 8 <EditText 
 9     android:id="@+id/show"
10     android:layout_width="match_parent" 
11     android:layout_height="wrap_content" 
12     android:editable="false"/>
13 <!-- 定义一个普通的按钮组件 -->
14 <Button
15     android:layout_width="match_parent" 
16     android:layout_height="wrap_content" 
17     android:text="简单对话框"
18     android:onClick="simple"
19     />
20 <!-- 定义一个普通的按钮组件 -->
21 <Button
22     android:layout_width="match_parent" 
23     android:layout_height="wrap_content" 
24     android:text="简单列表项对话框"
25     android:onClick="simpleList"
26     />    
27 <!-- 定义一个普通的按钮组件 -->
28 <Button
29     android:layout_width="match_parent" 
30     android:layout_height="wrap_content" 
31     android:text="单选列表项对话框"
32     android:onClick="singleChoice"
33     />    
34 <!-- 定义一个普通的按钮组件 -->
35 <Button
36     android:layout_width="match_parent" 
37     android:layout_height="wrap_content" 
38     android:text="多选列表项对话框"
39     android:onClick="multiChoice"
40     />    
41 <!-- 定义一个普通的按钮组件 -->
42 <Button
43     android:layout_width="match_parent" 
44     android:layout_height="wrap_content" 
45     android:text="自定义列表项对话框"
46     android:onClick="customList"
47     />    
48 <!-- 定义一个普通的按钮组件 -->
49 <Button
50     android:layout_width="match_parent" 
51     android:layout_height="wrap_content" 
52     android:text="自定义View对话框"
53     android:onClick="customView"
54     />                    
55 </LinearLayout>

login.xml 登录对话框的布局文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:id="@+id/loginForm"
 4     android:orientation="vertical"
 5     android:layout_width="fill_parent"
 6     android:layout_height="fill_parent"
 7     >
 8 <TableRow>
 9 <TextView
10     android:layout_width="fill_parent"
11     android:layout_height="wrap_content"
12     android:text="用户名:"
13     android:textSize="10pt"
14     />
15 <!-- 输入用户名的文本框 -->
16 <EditText
17     android:id="@+id/loginName"
18     android:layout_width="fill_parent"
19     android:layout_height="wrap_content"
20     android:hint="请填写登录帐号"
21     android:selectAllOnFocus="true"
22     />
23 </TableRow>
24 <TableRow>
25 <TextView
26     android:layout_width="fill_parent"
27     android:layout_height="wrap_content"
28     android:text="密码:"
29     android:textSize="10pt"    
30     />
31 <!-- 输入密码的文本框 -->    
32 <EditText
33     android:id="@+id/password"
34     android:layout_width="fill_parent"
35     android:layout_height="wrap_content"
36     android:hint="请填写密码"    
37     android:password="true"
38     />
39 </TableRow>
40 <TableRow>
41 <TextView
42     android:layout_width="fill_parent"
43     android:layout_height="wrap_content"
44     android:text="电话号码:"
45     android:textSize="10pt"    
46     />
47 <!-- 输入电话号码的文本框 -->        
48 <EditText
49     android:id="@+id/tel"
50     android:layout_width="fill_parent"
51     android:layout_height="wrap_content"
52     android:hint="请填写您的电话号码"
53     android:selectAllOnFocus="true"
54     android:phoneNumber="true"
55     />
56 </TableRow>
57 </TableLayout>

array_item.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:id="@+id/TextView"
 4     android:textColor="#f0f"
 5     android:textSize="30dp"
 6     android:shadowColor="#ff0"
 7     android:shadowRadius="2"
 8     android:shadowDx="5"
 9     android:shadowDy="5"
10     android:layout_width="match_parent" 
11     android:layout_height="wrap_content" />

 

AlertDialogTest.java   1 **  2 * Description:

  3  * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
  4  * <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
  5  * <br/>This program is protected by copyright laws.
  6  * <br/>Program Name:
  7  * <br/>Date:
  8  * @author  Yeeku.H.Lee kongyeeku@163.com
  9  * @version  1.0
 10  */
 11 public class AlertDialogTest extends Activity
 12 {
 13     TextView show;
 14     String[] items = new String[] { 
 15             "疯狂Java讲义", "疯狂Ajax讲义",
 16             "轻量级Java EE企业应用实战",
 17             "疯狂Android讲义" };    
 18     @Override
 19     public void onCreate(Bundle savedInstanceState)
 20     {
 21         super.onCreate(savedInstanceState);
 22         setContentView(R.layout.main);
 23         show = (TextView) findViewById(R.id.show);
 24     }
 25 
 26     public void simple(View source)
 27     {
 28         AlertDialog.Builder builder = new AlertDialog.Builder(this)
 29             // 设置对话框标题
 30             .setTitle("简单对话框")
 31             // 设置图标
 32             .setIcon(R.drawable.tools)
 33             .setMessage("对话框的测试内容\n第二行内容");
 34         // 为AlertDialog.Builder添加【确定】按钮
 35         setPositiveButton(builder);
 36         // 为AlertDialog.Builder添加【取消】按钮
 37         setNegativeButton(builder)
 38             .create()
 39             .show();
 40     }
 41 
 42     public void simpleList(View source)
 43     {
 44         AlertDialog.Builder builder = new AlertDialog.Builder(this)
 45             // 设置对话框标题
 46             .setTitle("简单列表项对话框")
 47             // 设置图标
 48             .setIcon(R.drawable.tools)
 49             // 设置简单的列表项内容
 50             .setItems(items, new OnClickListener()
 51             {
 52                 @Override
 53                 public void onClick(DialogInterface dialog, int which)
 54                 {
 55                     show.setText("你选中了《" + items[which] + "》");
 56                 }
 57             });
 58         // 为AlertDialog.Builder添加【确定】按钮
 59         setPositiveButton(builder);
 60         // 为AlertDialog.Builder添加【取消】按钮
 61         setNegativeButton(builder)
 62             .create()
 63             .show();
 64     }
 65 
 66     public void singleChoice(View source)
 67     {
 68         AlertDialog.Builder builder = new AlertDialog.Builder(this)
 69             // 设置对话框标题
 70             .setTitle("单选列表项对话框")
 71             // 设置图标
 72             .setIcon(R.drawable.tools)
 73             // 设置单选列表项,默认选中第二项(索引为1)
 74             .setSingleChoiceItems(items, 1, new OnClickListener()
 75             {
 76                 @Override
 77                 public void onClick(DialogInterface dialog, int which)
 78                 {
 79                     show.setText("你选中了《" + items[which] + "》");
 80                 }
 81             });
 82         // 为AlertDialog.Builder添加【确定】按钮
 83         setPositiveButton(builder);
 84         // 为AlertDialog.Builder添加【取消】按钮
 85         setNegativeButton(builder)
 86             .create()
 87             .show();
 88     }
 89     public void multiChoice(View source)
 90     {
 91         AlertDialog.Builder builder = new AlertDialog.Builder(this)
 92             // 设置对话框标题
 93             .setTitle("多选列表项对话框")
 94             // 设置图标
 95             .setIcon(R.drawable.tools)
 96             // 设置多选列表项,设置勾选第2项、第4项
 97             .setMultiChoiceItems(items
 98             , new boolean[]{false , true ,false ,true}, new OnMultiChoiceClickListener() {
 99                 
100                 public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                //which 代表第几个 isChecked代表是否选中
101 Toast.makeText(getApplicationContext(), "你选中了《"+items[which]+"》", Toast.LENGTH_LONG).show(); 102 103 } 104 }); 105 // 为AlertDialog.Builder添加【确定】按钮 106 setPositiveButton(builder); 107 // 为AlertDialog.Builder添加【取消】按钮 108 setNegativeButton(builder) 109 .create() 110 .show(); 111 } 112 public void customList(View source) 113 { 114 AlertDialog.Builder builder = new AlertDialog.Builder(this) 115 // 设置对话框标题 116 .setTitle("自定义列表项对话框") 117 // 设置图标 118 .setIcon(R.drawable.tools) 119 // 设置自定义列表项 120 .setAdapter(new ArrayAdapter<String>(this 121 , R.layout.array_item 122 , items), new OnClickListener() { 123 124 @Override 125 public void onClick(DialogInterface dialog, int which) { 126 Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show(); 127 128 } 129 }); 130 // 为AlertDialog.Builder添加【确定】按钮 131 setPositiveButton(builder); 132 // 为AlertDialog.Builder添加【取消】按钮 133 setNegativeButton(builder) 134 .create() 135 .show(); 136 } 137 138 public void customView(View source) 139 { 140 //装载/res/layout/login.xml界面布局 141 final TableLayout loginForm = (TableLayout)getLayoutInflater() 142 .inflate( R.layout.login, null); 143 new AlertDialog.Builder(this) 144 // 设置对话框的图标 145 .setIcon(R.drawable.tools) 146 // 设置对话框的标题 147 .setTitle("自定义View对话框") 148 // 设置对话框显示的View对象 149 .setView(loginForm) 150 // 为对话框设置一个“确定”按钮 151 .setPositiveButton("登录" , new OnClickListener() 152 { 153 @Override 154 public void onClick(DialogInterface dialog, 155 int which) 156 { 157     //获取登录对话框的控件 158 EditText loginNameET = (EditText)loginForm.findViewById(R.id.loginName); 159 EditText passwordET =(EditText)loginForm.findViewById(R.id.password); 160 EditText tel = (EditText)loginForm.findViewById(R.id.tel); 161 Toast.makeText(getApplicationContext(), loginNameET.getText().toString(), Toast.LENGTH_SHORT).show(); 162 163 // 此处可执行登录处理 164 } 165 }) 166 // 为对话框设置一个“取消”按钮 167 .setNegativeButton("取消", new OnClickListener() 168 { 169 @Override 170 public void onClick(DialogInterface dialog, 171 int which) 172 { 173 // 取消登录,不做任何事情。 174 } 175 }) 176 // 创建、并显示对话框 177 .create() 178 .show(); 179 } 180 181 private AlertDialog.Builder setPositiveButton( 182 AlertDialog.Builder builder) 183 { 184 // 调用setPositiveButton方法添加确定按钮 185 return builder.setPositiveButton("确定", new OnClickListener() 186 { 187 @Override 188 public void onClick(DialogInterface dialog, int which) 189 { 190 show.setText("单击了【确定】按钮!"); 191 } 192 }); 193 } 194 195 private AlertDialog.Builder setNegativeButton( 196 AlertDialog.Builder builder) 197 { 198 // 调用setNegativeButton方法添加取消按钮 199 return builder.setNegativeButton("取消", new OnClickListener() 200 { 201 @Override 202 public void onClick(DialogInterface dialog, int which) 203 { 204 show.setText("单击了【取消】按钮!"); 205 } 206 }); 207 } 208 }

 

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