首页 > 代码库 > android 对话框

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 <Button15     android:layout_width="match_parent" 16     android:layout_height="wrap_content" 17     android:text="简单对话框"18     android:onClick="simple"19     />20 <!-- 定义一个普通的按钮组件 -->21 <Button22     android:layout_width="match_parent" 23     android:layout_height="wrap_content" 24     android:text="简单列表项对话框"25     android:onClick="simpleList"26     />    27 <!-- 定义一个普通的按钮组件 -->28 <Button29     android:layout_width="match_parent" 30     android:layout_height="wrap_content" 31     android:text="单选列表项对话框"32     android:onClick="singleChoice"33     />    34 <!-- 定义一个普通的按钮组件 -->35 <Button36     android:layout_width="match_parent" 37     android:layout_height="wrap_content" 38     android:text="多选列表项对话框"39     android:onClick="multiChoice"40     />    41 <!-- 定义一个普通的按钮组件 -->42 <Button43     android:layout_width="match_parent" 44     android:layout_height="wrap_content" 45     android:text="自定义列表项对话框"46     android:onClick="customList"47     />    48 <!-- 定义一个普通的按钮组件 -->49 <Button50     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 <TextView10     android:layout_width="fill_parent"11     android:layout_height="wrap_content"12     android:text="用户名:"13     android:textSize="10pt"14     />15 <!-- 输入用户名的文本框 -->16 <EditText17     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 <TextView26     android:layout_width="fill_parent"27     android:layout_height="wrap_content"28     android:text="密码:"29     android:textSize="10pt"    30     />31 <!-- 输入密码的文本框 -->    32 <EditText33     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 <TextView42     android:layout_width="fill_parent"43     android:layout_height="wrap_content"44     android:text="电话号码:"45     android:textSize="10pt"    46     />47 <!-- 输入电话号码的文本框 -->        48 <EditText49     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 @Override125 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 @Override154 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 @Override170 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 @Override188 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 @Override202 public void onClick(DialogInterface dialog, int which)203 {204 show.setText("单击了【取消】按钮!");205 }206 });207 }208 }

 

android 对话框