一、ListDialog
package org.crazyit.dialog; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; /** * Description: * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a> * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author Yeeku.H.Lee [email protected] * @version 1.0 */ public class SingleChoiceDialog extends Activity { final int SINGLE_DIALOG = 0x113; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bn = (Button)findViewById(R.id.bn); //为按钮绑定事件监听器 bn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View source) { //显示对话框 showDialog(SINGLE_DIALOG); } }); } //重写onCreateDialog方法创建对话框 public Dialog onCreateDialog(int id, Bundle state) { //判断需要生成哪种类型的对话框 switch (id) { case SINGLE_DIALOG: Builder b = new AlertDialog.Builder(this); // 设置对话框的图标 b.setIcon(R.drawable.tools); // 设置对话框的标题 b.setTitle("单选列表对话框"); // 为对话框设置多个列表 b.setSingleChoiceItems(new String[] { "红色", "绿色", "蓝色" } // 默认选中第二项 , 1 //为列表项的单击事件设置监听器 , new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { TextView show = (TextView) findViewById(R.id.show); // which代表哪个列表项被单击了 switch (which) { //修改文本框的背景色 case 0: show.setBackgroundColor(Color.RED); break; case 1: show.setBackgroundColor(Color.GREEN); break; case 2: show.setBackgroundColor(Color.BLUE); break; } } }); // 添加一个“确定”按钮,用于关闭该对话框 b.setPositiveButton("确定", null); // 创建对话框 return b.create(); } return null; } }
二、loginDialog
<TableRow> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="用户名:" android:textSize="10pt" /> <!-- 输入用户名的文本框 --> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请填写登录帐号" android:selectAllOnFocus="true" /> </TableRow>
package org.crazyit.dialog;
import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TableLayout; /** * Description: * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a> * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author Yeeku.H.Lee [email protected] * @version 1.0 */ public class LoginDialog extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bn = (Button)findViewById(R.id.bn); //定义一个AlertDialog.Builder对象 final Builder builder = new AlertDialog.Builder(this); //为按钮绑定事件监听器 bn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View source) { // 设置对话框的图标 builder.setIcon(R.drawable.tools); // 设置对话框的标题 builder.setTitle("自定义普通对话框"); //装载/res/layout/login.xml界面布局 TableLayout loginForm = (TableLayout)getLayoutInflater() .inflate( R.layout.login, null); // 设置对话框显示的View对象 builder.setView(loginForm); // 为对话框设置一个“确定”按钮 builder.setPositiveButton("登录" // 为按钮设置监听器 , new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //此处可执行登录处理 } }); // 为对话框设置一个“取消”按钮 builder.setNegativeButton("取消" , new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //取消登录,不做任何事情。 } }); //创建、并显示对话框 builder.create().show(); } }); } }
三、多项选择对话框
package org.crazyit.dialog; import org.crazyit.dialog.R; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; /** * Description: * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a> * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author Yeeku.H.Lee [email protected] * @version 1.0 */ public class MultiChoiceDialog extends Activity { final int SINGLE_DIALOG = 0x113; String[] colorNames = new String[] { "红色", "绿色", "蓝色" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bn = (Button) findViewById(R.id.bn); // 为按钮绑定事件监听器 bn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View source) { // 显示对话框 showDialog(SINGLE_DIALOG); } }); } public Dialog onCreateDialog(int id, Bundle state) { // 判断需要生成哪种类型的对话框 switch (id) { case SINGLE_DIALOG: Builder b = new AlertDialog.Builder(this); // 设置对话框的图标 b.setIcon(R.drawable.tools); // 设置对话框的标题 b.setTitle("多选列表对话框"); final boolean[] checkStatus = new boolean[] { true, false, true }; // 为对话框设置多个列表 b.setMultiChoiceItems(new String[] { "红色", "绿色", "蓝色" } // 设置默认勾选了哪些列表项 , checkStatus // 为列表项的单击事件设置监听器 , new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { EditText show = (EditText) findViewById(R.id.show); String result = "您喜欢的颜色为:"; for (int i = 0; i < checkStatus.length; i++) { // 如果该选项被选中 if (checkStatus[i]) { result += colorNames[i] + "、"; } } show.setText(result); } }); // 添加一个“确定”按钮,用于关闭该对话框 b.setPositiveButton("确定", null); // 创建对话框 return b.create(); } return null; } }