标签:
对话框是当前页面中弹出的一个小窗口,用于显示重要的提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等等。用户需要与对话框进行交互,才能回到原窗口继续执行。
1、确认对话框。
2、单选按钮对话框。
3、多选按钮对话框。
4、列表对话框。
5、自定义对话框。
1、 AlertDialog.Builder中的create()方法,创建一个dialog。
2、setTitle(),设置标题
3、setIcon():为对话框设置图标。
4、setMessage():为对话框设置内容。
5、setView():为对话框设置自定义样式。
6、setItems():设置对话框要显示一个list。
7、setSingleChoiceItems():显示单选按钮列表
8、setMultiChoiceItems():显示复选按钮列表
9、setNeutralButton():普通按钮
10、setPositiveButton():给对话框添加确认按钮。
11、setNegativeButton():给对话框添加取消按钮。
四、示例代码,确认对话框、单选对话框,多选对话框,列表对话框,自定义对话框五种对话框。
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" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="对话框代码示例" /> <Button android:id="@+id/btn_dialog1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="确认对话框"/> <Button android:id="@+id/btn_dialog2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="单选按钮对话框"/> <Button android:id="@+id/btn_dialog3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="多选按钮对话框"/> <Button android:id="@+id/btn_dialog4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="列表对话框"/> <Button android:id="@+id/btn_dialog5" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="自定义对话框"/> </LinearLayout>
dialog_layout.xml 自定义对话框布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_width="200dp" android:layout_height="wrap_content" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定" /> </LinearLayout>
后台代码,mai.java
package com.example.zhengcheng.myapplication; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { Button btn_dialog1; Button btn_dialog2; Button btn_dialog3; Button btn_dialog4; Button btn_dialog5; String[] item_list1 = new String[]{"男", "女"}; //单选列表数据 String[] item_list2 = new String[]{"篮球", "乒乓球", "羽毛球", "足球", "游泳"}; //多选列表数据 boolean[] selected = new boolean[]{false, false, false, false, false}; //多选列表选中状态 String[] item_list3 = new String[]{"项目部", "设计部", "测试部", "人事部"}; //列表框数据 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //确认对话框 btn_dialog1 = (Button) findViewById(R.id.btn_dialog1); btn_dialog1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建一个builder对象,用来设置对话框属性 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("对话框标题"); //设置对话框标题 builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标 builder.setMessage("是否退出"); //设置对话框内容 //设置对话框确定按钮 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "点击了确认按钮", Toast.LENGTH_SHORT).show(); } }); //设置对话框取消按钮 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "点击了取消按钮", Toast.LENGTH_SHORT).show(); } }); //创建对话框对象 AlertDialog dialog = builder.create(); dialog.show(); //显示对话框 } }); //单选按钮对话框 btn_dialog2 = (Button) findViewById(R.id.btn_dialog2); btn_dialog2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建一个builder对象,用来设置对话框属性 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择性别"); //设置对话框标题 builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标 builder.setSingleChoiceItems(item_list1, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String sex = item_list1[which]; Toast.makeText(MainActivity.this, sex, Toast.LENGTH_SHORT).show(); dialog.dismiss(); //关闭对话框 } }); //创建对话框对象 AlertDialog dialog = builder.create(); dialog.show(); //显示对话框 } }); //复选按钮对话框 btn_dialog3 = (Button) findViewById(R.id.btn_dialog3); btn_dialog3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建一个builder对象,用来设置对话框属性 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择爱好"); //设置对话框标题 builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标 //设置多选按钮对话框,第一个参数为列表数据,第二各参数为上次选中的数据,为boolean类型数组 builder.setMultiChoiceItems(item_list2, selected, new DialogInterface.OnMultiChoiceClickListener() { //点击复选框按钮 @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { if (isChecked) { //创建数组,记录选中状态 selected[which] = isChecked; } } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String choice = ""; for (int i = 0; i < selected.length; i++) { if (selected[i]) { //根据选中状态获取数组中的值 choice += item_list2[i]; } } Toast.makeText(MainActivity.this, choice.toString(), Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); //创建对话框对象 AlertDialog dialog = builder.create(); dialog.show(); //显示对话框 } }); //列表对话框 btn_dialog4 = (Button) findViewById(R.id.btn_dialog4); btn_dialog4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建一个builder对象,用来设置对话框属性 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择部门"); //设置对话框标题 builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标 builder.setSingleChoiceItems(item_list3, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String department = item_list3[which]; Toast.makeText(MainActivity.this, department, Toast.LENGTH_SHORT).show(); dialog.dismiss(); //关闭对话框 } }); //创建对话框对象 AlertDialog dialog = builder.create(); dialog.show(); //显示对话框 } }); //自定义对话框 btn_dialog5 = (Button) findViewById(R.id.btn_dialog5); btn_dialog5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取Layout布局 LayoutInflater inflater = LayoutInflater.from(MainActivity.this); View view = inflater.inflate(R.layout.dialog_layout,null); //创建一个builder对象,用来设置对话框属性 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择部门"); //设置对话框标题 builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标 //设置builder的视图为自定义视图 builder.setView(view); //创建对话框对象 AlertDialog dialog = builder.create(); dialog.show(); //显示对话框 } }); } }
标签:
原文地址:http://www.cnblogs.com/zhengcheng/p/4423535.html