标签:
在程序设计中,我们经常会用到对话框,这里,我为大家写了三种常见的案例。下面我们看运行截图。
下面我们直接看代码
布局文件 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.diagl.MainActivity" > <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClick1" android:text="确定取消对话框" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClick2" android:text="单选对话框" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClick3" android:text="多选对话框" /> </LinearLayout>
java文件
package com.example.diagl; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 确认/取消对话框 public void onClick1(View v) { // AlertDialog无法通过new创建对象,所以要用其内部类Builder创建 AlertDialog.Builder builder = new Builder(this); // 设置相关属性,图标等不是必须设置的属性 builder.setIcon(android.R.drawable.alert_light_frame); builder.setTitle("对话框标题"); builder.setMessage("这个是对话框正文"); // 设置确定按钮的文本你和添加监听内容 builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "点击了确定按钮", 0).show(); } }); // 设置取消按钮的文本和监听内容 builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "点击了取消按钮", 0).show(); } }); // 创建器创建对话框 AlertDialog alertDialog = builder.create(); alertDialog.show(); /* * 上面语句简写的话,直接builder.show();也是可以得 */ } // 多选对话框 public void onClick2(View v) { AlertDialog.Builder aBuilder = new Builder(this); aBuilder.setTitle("请选择女朋友"); /* * 第一个参数:单选对话框的选项,一般为字符串数组 第二个参数:选择默认选项,-1表示没有默认选项。要选默认选项可以传入字符串数组下标 * 第三个参数:监听 */ final String[] items = { "朱主爱", "新垣结衣", "刘诗诗" }; aBuilder.setSingleChoiceItems(items, -1, new OnClickListener() { /* * 第一个参数:表示当前对话框 第二个参数:表示用户所选择的选项下标(也就是字符串数组下标) */ @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "你选择了" + items[which], 0) .show(); // 这个是让用户点击后让对话框消失的语句 dialog.dismiss(); } }); aBuilder.show(); } // 多选对话框 public void onClick3(View v) { AlertDialog.Builder aBuilder = new Builder(this); aBuilder.setTitle("请选择女朋友"); // 选项内容 final String[] items = { "JoyceChu", "新垣结衣", "Taylor Swift", "赵丽颖", "刘诗诗" }; // 默认被选中的选项,true为选择,false为没有选择,分别对应内容数组元素 final boolean[] checkedItems = { true, true, false, false, false }; /* * 第一个参数:字符串数组,要选择的选项 第二个参数:布尔值数组,表示默认被选中的选项 * 第三个参数:监听,注意用的是OnMultiChoiceClickListener()的监听方法 */ aBuilder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() { /* * 第一个参数:当前对话框 第二个参数:选择内容的小标 第三个参数:选择中的选项为true,没选择为false */ @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { // TODO Auto-generated method stub checkedItems[which] = isChecked; } }); // 添加确定按钮 aBuilder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub String textString = ""; for (int i = 0; i < checkedItems.length; i++) { if (checkedItems[i]) { textString = textString + items[i] + ","; } } Toast.makeText(MainActivity.this, "你选择了" + textString + "做女朋友", 0) .show(); dialog.dismiss(); } }); aBuilder.show(); } }
标签:
原文地址:http://www.cnblogs.com/linfenghp/p/5406148.html