public void putong(View view) {
//1.构造者模式
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//设置属性
//设置图标
builder.setIcon(R.mipmap.immfd);//Icon图标
//设置标题
builder.setTitle("情感问答");
//设置消息
builder.setMessage("你有女朋友吗?");
//2.提示文字
//确定按钮
//Positive确定;积极的
builder.setPositiveButton("有", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你竟然有女朋友,那可要好好珍惜!!!", Toast.LENGTH_SHORT).show();
}
});
//取消按钮
//Negative取消;消极的
builder.setNegativeButton("没有", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "程序猿要早点脱单,要不然会被逼婚的", Toast.LENGTH_SHORT).show();
}
});
//3.构建对话框
AlertDialog alertDialog = builder.create();//create创建
//4.显示
alertDialog.show();
}
public void danxuan(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.immfd);//Icon图标
//设置标题
builder.setTitle("选择你喜欢的语言!");
//内部类调用被final修饰
final String[] str = new String[]{"java", "php", "C++"};
//设置点击事件
//第一个数组,第二个点击的下标,第三个点击事件
builder.setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, str[i], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "取消选择了", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
public void duoxuan(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.immfd);
builder.setTitle("标题");
//定义一个数组定义选项的内容
final String[] strings = new String[]{"1", "2", "3"};
//定义一个对应的boolean类型数组
final boolean[] boo = {true, false, true};
/**
* 多选
* 1.数据源
* 2.选中的下标
*/
builder.setMultiChoiceItems(strings, boo, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
boo[i] = b;
Toast.makeText(MainActivity.this, "" + i + b, Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "取消选择了", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
public void zidingyi(View view) {
//创建自定义布局
View inflate = LayoutInflater.from(this).inflate(R.layout.dialog_item, null);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.immfd);
builder.setTitle("标题");
//将布局设置到这个创建的构造者模式里边
builder.setView(inflate);
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="标题"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="文本"
android:gravity="center"
android:drawableBottom="@mipmap/ic_launcher"
/>
</LinearLayout>
//进度条对话框
public void jindu(View view) {
//创建进度条
final ProgressDialog dialog = new ProgressDialog(MainActivity.this);
//设置消息
dialog.setMessage("正在下载……");
//设置最大值
dialog.setMax(100);
//设置进度值
dialog.setProgress(0);
//设置第二进度值
dialog.setSecondaryProgress(0);
//设置显示模式
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//定义时间
final Timer timer = new Timer();
//创建匿名内部类
timer.schedule(new TimerTask() {
//定义一个int类型用来增加进度
int i = 0;
@Override
public void run() {
i += 10;//增加进度
//设置进度
//增加完成之后设置
dialog.setProgress(i);
//判断是否大于等于最大值
if (i >= 100) {
//结束
timer.cancel();
//dismiss隐藏对话框
dialog.dismiss();
}
}
//delay设置延时多长时间开始
//period设置每隔多长时间执行一次
}, 3000, 1000);
//显示
dialog.show();
}
public void shijian(View view) {
//创建 系统时间的方法
Calendar instance = Calendar.getInstance();
//i 年
//i1 月
//i2 日
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
Toast.makeText(MainActivity.this, "年:" + i + "月:" + i1 + "日:" + i2, Toast.LENGTH_SHORT).show();
//设置当前的年、月、日并调用显示
}
}, instance.get(Calendar.YEAR), instance.get(Calendar.MONTH), instance.get(Calendar.DAY_OF_MONTH)).show();
}
public void data(View view) {
//设置系统时间的方法
Calendar instance = Calendar.getInstance();
//i 小时HOUR
//i1 分钟MINUTE
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
Toast.makeText(MainActivity.this, i + "点:" + i1 + "分:", Toast.LENGTH_SHORT).show();
}
}, instance.get(Calendar.HOUR), instance.get(Calendar.MINUTE), true).show();
}
public void wanquan(View view) {
//创建的自己写的自定义方法
final MyDialog myDialog = new MyDialog(MainActivity.this);
//设置信息
myDialog.setMessageStr("你好");
//设置头
myDialog.setTitleStr("我是谁?");
//设置点击确定
myDialog.setYesStr("好");
//设置点击取消
myDialog.setNoStr("不好");
//设置确定的点击事件
myDialog.setYesOnclickListener(new MyDialog.YesOnclickListener() {
@Override
public void Onclick() {
Toast.makeText(MainActivity.this, "点击了yes", Toast.LENGTH_SHORT).show();
myDialog.dismiss();
}
});
//设置取消的点击事件
myDialog.setNoOnclikListener(new MyDialog.NoOnclikListener() {
@Override
public void NoOnclick() {
Toast.makeText(MainActivity.this, "点击了no", Toast.LENGTH_SHORT).show();
myDialog.dismiss();
}
});
myDialog.show();
}
自己创建的类MyDialog
package com.bb.day01;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MyDialog extends Dialog {
//初始化控件
private TextView title;
private TextView message;
private Button no;
private Button yes;
private String titleStr;
private String messageStr;
private String yesStr;
private String noStr;
//重写set方法
public void setMessageStr(String messageStr) {
this.messageStr = messageStr;
}
public void setYesStr(String yesStr) {
this.yesStr = yesStr;
}
public void setNoStr(String noStr) {
this.noStr = noStr;
}
public void setTitleStr(String titleStr) {
this.titleStr = titleStr;
}
public MyDialog(Context context) {
super(context);
}
//点击事件
private YesOnclickListener yesOnclickListener;
public interface YesOnclickListener{
void Onclick();
}
public void setYesOnclickListener(YesOnclickListener yesOnclickListener) {
this.yesOnclickListener = yesOnclickListener;
}
//接口回掉no点击事件
private NoOnclikListener noOnclikListener;
//定义一个接口公告的
public interface NoOnclikListener{
//创建方法
void NoOnclick();
}
//创建set方法
public void setNoOnclikListener(NoOnclikListener noOnclikListener) {
this.noOnclikListener = noOnclikListener;
}
//创建OnCreate方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//将布局设置到自己写的布局
setContentView(R.layout.zidingyi_item);
//控件初始化
title = findViewById(R.id.title);
message = findViewById(R.id.message);
no = findViewById(R.id.no);
yes = findViewById(R.id.yes);
//判断是否为空各个控件
if (titleStr!=null){
title.setText(titleStr);
}
if (messageStr!=null){
message.setText(messageStr);
}
if (yesStr!=null){
yes.setText(yesStr);
}
if (noStr!=null){
no.setText(noStr);
}
//设置点击事件
no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
noOnclikListener.NoOnclick();
}
});
//设置点击事件
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
yesOnclickListener.Onclick();
}
});
}
}
<?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=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出普通对话框"
android:onClick="putong"
android:id="@+id/dilogOne"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出单选对话框"
android:onClick="danxuan"
android:id="@+id/dilogTwo"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出多选对话框"
android:onClick="duoxuan"
android:id="@+id/dilogduoxuan"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="自定义对话框"
android:onClick="zidingyi"
android:id="@+id/zidingyi"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="进度条对话框"
android:onClick="jindu"
android:id="@+id/jindu"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="日期选择对话框"
android:onClick="shijian"
android:id="@+id/shijian"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="时间对话框"
android:onClick="data"
android:id="@+id/data"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="完全自定义对话框"
android:onClick="wanquan"
android:id="@+id/wanquan"
/>
</LinearLayout>