package com.gc.alertdialogdemo; /** * AlertDialog: * 1、AlertDialog的功能很强大,它可以生成各种内容的对话框,实际上AlertDialog生成的 * 的对话框总可以分为4个区域:(1)图标区(2)标题区(3)内容区(3)按钮区。 * 2、创建一个对话框需要经过如下几个步骤: * (1)使用创建AlertDialog.Builder对象。 * (2)调用AlertDialog.Builder的setTitle()或setCustomTitle()方法设置标题 * (3)调用AlertDialog.Builder的setIcon()方法设置标题 * (4)调用AlertDialog.Builder的相关设置方法设置对话框内容 * (5)调用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多个按钮 * (6)调用AlertDialog.Builder的create()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法将该对话框显示出来。 * 3、AlertDialog提供了如下6种方法来指定对话框内容: * (1)setMessage():设置对话内容为简单文本内容。 * (2)setItems():设置对话框内容为简单列表项 * (3)setSingleChoiceItems():设置对话框内容为单选列表项 * (4)setMultiChoiceItems():设置对话框内容为多选列表项 * (5)setAdapter():设置对话框内容为自定义列表项 * (6)setView():设置对话框内容为自定义View. * */ import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.view.Menu; import android.view.View; import android.widget.ArrayAdapter; import android.widget.TableLayout; import android.widget.TextView; /** * * @author Android将军 * */ public class MainActivity extends Activity { public TextView show; private String[] items=new String[] { "Android将军", "ios将军", "Cocos2d-x将军", "将军" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); show=(TextView)findViewById(R.id.show); } public void customView(View source) { TableLayout loginForm=(TableLayout)getLayoutInflater().inflate(R.layout.login, null); new AlertDialog.Builder(this) .setTitle("自定义View对话框") //设置图标 .setIcon(R.drawable.ic_launcher) .setView(loginForm) .setPositiveButton("登录", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .create() .show(); } public void customList(View source) { AlertDialog.Builder builder=new AlertDialog.Builder(this) //设置对话框标题 .setTitle("自定义列表对话框") //设置图标 .setIcon(R.drawable.ic_launcher) .setAdapter(new ArrayAdapter<String>(this, R.layout.array_item, items), null); setPositiveButton(builder); setNeutralButton(builder); //为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder).create().show(); } public void multiChoice(View source) { AlertDialog.Builder builder=new AlertDialog.Builder(this) //设置对话框标题 .setTitle("多选列表对话框") //设置图标 .setIcon(R.drawable.ic_launcher) .setMultiChoiceItems(items, new boolean[]{false,true,false,true}, null); setPositiveButton(builder); setNeutralButton(builder); //为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder).create().show(); } public void singleChoice(View source) { AlertDialog.Builder builder=new AlertDialog.Builder(this) //设置对话框标题 .setTitle("单选列表对话框") //设置图标 .setIcon(R.drawable.ic_launcher) .setSingleChoiceItems(items, 1, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub show.setText("你选中了《"+items[which]+"》"); } }); setPositiveButton(builder); setNeutralButton(builder); //为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder).create().show(); } public void simpleList(View source) { AlertDialog.Builder builder=new AlertDialog.Builder(this) //设置对话框标题 .setTitle("简单列表对话框") //设置图标 .setIcon(R.drawable.ic_launcher) //设置简单的列表项内容 .setItems(items, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub show.setText("你选中了《"+items[which]+"》"); } }); setPositiveButton(builder); setNeutralButton(builder); //为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder).create().show(); } public void simple(View source) { AlertDialog.Builder builder=new AlertDialog.Builder(this) //设置对话框标题 .setTitle("简单对话框") //设置图标 .setIcon(R.drawable.ic_launcher) .setMessage("对话框的测试内容\n第二行内容"); //为AlertDialog.Builder添加“确定”按钮 setPositiveButton(builder); setNeutralButton(builder); //为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder).create().show(); } private Builder setNeutralButton(Builder builder) { // TODO Auto-generated method stub return builder.setNeutralButton("修饰", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub show.setText("单击了【修饰】按钮!"); } }); } private Builder setNegativeButton(Builder builder) { // 调用setNegativeButton方法添加“确定”按钮 return builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub show.setText("单击了【取消】按钮!"); } }); } private Builder setPositiveButton(Builder builder) { // 调用setPositiveButton方法添加“确定”按钮 return builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub show.setText("单击了【确定】按钮!"); } }); } }
几个布局文件如下:
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/show" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:onClick="simple" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="显示简单对话框" /> <Button android:onClick="simpleList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="简单列表项对话框" /> <Button android:onClick="singleChoice" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="单选列表项对话框" /> <Button android:onClick="multiChoice" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="多选列表项对话框" /> <Button android:onClick="customList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="自定义列表项对话框" /> <Button android:onClick="customView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="自定义View对话框" /> </LinearLayout>
login.xml
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/loginForm" android:orientation="vertical" > <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> <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:password="true" /> </TableRow> <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" android:phoneNumber="true" /> </TableRow> </TableLayout>
array_item.xml
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > </TextView>
部分效果截图:
转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/25739587
AndroidUI组件之AlertDialog
时间: 2024-10-22 02:13:01