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 }