项目地址:点击打开链接
一、对话框简介
a.对话框是程序与用户进行交互的主要途径之一。Android平台下的对话框主要包括普通对话框、选项对话框、单选多选对话框、日期与时间对话框等。
b.对话框是Activity运行时显示的小窗口,当显示对话框时,当前Activity失去焦点而由对话框负责所有的人机交互。一般来说,对话框用于提示消息或弹出一个与程序主进程直接相关的小程序。
二、对话框分类
a. 提示对话框AlertDialog
b. 进度对话框(ProgressDialog)AlertDialog对话框可以包含如干按钮(0~4个不等)和一些可选的单选按钮或复选框。
ProgressDialog可以显示进度轮(wheel)和进度条(bar),由于ProgressDialog继承自AlertDialog,所以进度对话框中可以添加按钮。
c. 日期选择对话框(DatePickerDialog)
DatePickerDialog对话框可以显示并允许用户选择日期
d. 时间选择对话框(TimePickerDialog)
TimePickerDialog对话框可以显示并允许用户选择时间
e. 如果需要自定义对话框的外观样式,可以继承Dialog或或其子类并定义自己的布局。
三、注意
在API 13之前,对话框是作为Activity的一部分被创建和显示的,在程序中通过开发回调方法onCreateDialog来完成对话框的创建,显示对话框则调用showDialog方法。在API 13之后,使用DialogFragment类来显示对话框。
四、效果图
1.普通对话框
2.列表对话框
3.单选对话框
4.日期对话框
5.时间对话框
6.进度对话框
五、代码示例
1.普通对话框
a. main_activity.xml文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.yk.alertdialog.MainActivity"> <Button android:id="@+id/btn_normal_dialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="NormalDialog"/> </LinearLayout>
b.activity代码(API 13之前):
package com.yk.alertdialog; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; /** * @author YK */ public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_normal_dialog: showNormalDialog(); break; default: } } private void showNormalDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); //设置对话框图标 builder.setIcon(R.drawable.normal_dialog_icon); //设置对话框标题 builder.setTitle("我是一个普通的对话框"); //设置对话框显示内容 builder.setMessage("我是对话框显示的内容"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //To-Do............... } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //To-Do............... } }); //显示对话框 builder.show(); } }
c. activity代码(API 13之后):