android 对话框
程序员文章站
2022-05-16 11:21:38
...
一、常用对话框
普通对话框
//普通对话框
private void normal_dialog() {
//1.构建者
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//2.设置属性 icon图标 title标题 message内容
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("这是标题");
builder.setMessage("这是内容");
//设置按钮 PositiveButton确定按钮(参数:"显示内容",点击监听)
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了确定", Toast.LENGTH_SHORT).show();
}
});
//设置按钮 NegativeButton取消按钮(参数:"显示内容",点击监听)
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
}
});
//3.使用建造者创建对话框
AlertDialog dialog = builder.create();
//4.显示
dialog.show();
}
单选对话框
单选对话框 SingleChoiceItems
//单选对话框
private void single_dialog() {
//1.构建者
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//2.设置属性 icon图标 title标题 message内容
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("这是标题");
//设置按钮 PositiveButton确定按钮(参数:"显示内容",点击监听)
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了确定", Toast.LENGTH_SHORT).show();
}
});
//设置按钮 NegativeButton取消按钮(参数:"显示内容",点击监听)
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
}
});
//3设置单选列表 SingleChoiceItems单选 (参数:数据源,默认选中下标,点击监听)
final String[] datas = {"男", "女", "不详"};
builder.setSingleChoiceItems(datas, 2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你选中的是:" + datas[i], Toast.LENGTH_SHORT).show();
}
});
//4.使用建造者创建对话框
AlertDialog dialog = builder.create();
//5.显示
dialog.show();
}
多选对话框
多选对话框 NegativeButton 与单选区别就是一个词语
//多选对话框
private void mulite_dialog() {
//1.构建者
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//2.设置属性 icon图标 title标题 message内容
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("这是标题");
//设置按钮 PositiveButton确定按钮(参数:"显示内容",点击监听)
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了确定", Toast.LENGTH_SHORT).show();
}
});
//设置按钮 NegativeButton取消按钮(参数:"显示内容",点击监听)
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
}
});
//3.设置多选列表 SingleChoiceItems单选 (参数:数据源,默认选中状态,点击监听)
final String[] datas = {"吃饭", "睡觉", "打豆豆"};
final boolean[] flags = {false, true, true};
builder.setMultiChoiceItems(datas, flags, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
Toast.makeText(MainActivity.this, "你选中的是:" + datas[i], Toast.LENGTH_SHORT).show();
}
});
//4.使用建造者创建对话框
AlertDialog dialog = builder.create();
//5.显示
dialog.show();
}
自定义内容对话框
仅改变内容 内容布局可随意更改
<?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"
android:orientation="vertical">
<TextView
android:id="@+id/tv"
android:text="自定义内容(图片素材)"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv"
android:src="@mipmap/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
//自定义内容对话框
private void custom_dialog() {
//1.获取布局视图
View inflate = LayoutInflater.from(this).inflate(R.layout.custom_layout, null);
//2.构建者
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//属性
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("这是标题");
//设置按钮 PositiveButton确定按钮(参数:"显示内容",点击监听)
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了确定", Toast.LENGTH_SHORT).show();
}
});
//设置按钮 NegativeButton取消按钮(参数:"显示内容",点击监听)
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
}
});
//3.设置自定义布局
builder.setView(inflate);
//4.使用建造者创建对话框
AlertDialog dialog = builder.create();
//5.显示
dialog.show();
}
水平进度条对话框
实例进度条对象 用style变换样式 系统自带的样式 STYLE_HORIZONTAL
//水平进度条对话框
private void hor_progress_dialog() {
//1.实例化对象 进度条对话框 ProgressDialog
final ProgressDialog dialog = new ProgressDialog(this);
//2.设置属性 ProgressStyle进度条样式 Max进度条最大值 Message提示语
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMax(100);
dialog.setMessage("正在下载");
//3.显示
dialog.show();
//4.定时器 模拟下载过程使进度条动
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
//进度条状态初始为0
int progreess = 0;
@Override
public void run() {
//进度条状态超出最大值执行 停止计时器 消失对话框
if (progreess >= 100) {
//对话框撤销
dialog.dismiss();
//计时器取消
timer.cancel();
}
//每次进度为20 共100
dialog.setProgress(progreess += 20);
}
//0秒够执行,每隔1000毫秒执行一次,也就是每秒执行一次
}, 0, 1000);
}
圆形进度条对话框
实例进度条对象 用style变换样式 系统自带的样式 STYLE_SPINNER
//圆形进度条对话框
private void spi_progress_dialog() {
//1.实例化对象 进度条对话框 ProgressDialog
final ProgressDialog dialog = new ProgressDialog(this);
//2.设置属性 ProgressStyle进度条样式 Max进度条最大值 Message提示语
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//圆形
dialog.setMax(100);
dialog.setMessage("正在下载");
//3.显示
dialog.show();
//4.定时器 模拟下载过程使进度条动
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
//进度条状态初始为0
int progreess = 0;
@Override
public void run() {
//进度条状态超出最大值执行 停止计时器 消失对话框
if (progreess >= 100) {
//对话框撤销
dialog.dismiss();
//计时器取消
timer.cancel();
}
//每次进度为20 共100
dialog.setProgress(progreess += 20);
}
//0秒够执行,每隔1000毫秒执行一次,也就是每秒执行一次
}, 0, 1000);
}
日期选择对话框
系统自带的日期对话框 默认样式由版本决定
//日期对话框
private void data_dialog() {
//1.实例化日历对象 获取系统日期
Calendar calendar = Calendar.getInstance();
//2. DatePickerDialog日期选择对话框
DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int dayOfMonth) {
Toast.makeText(MainActivity.this, year + "-" + (month + 1) + "-" + dayOfMonth, Toast.LENGTH_SHORT).show();
}
//YEAR 年 MONTH月 DAY_OF_MONTH日
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
//3.显示
dialog.show();
}
时间选择对话框
系统自带的日期对话框 默认样式由版本决定
//时间选择对话框
private void time_dialog() {
//1.实例化日历对象 获取系统时间
Calendar calendar = Calendar.getInstance();
//2.TimePickerDialog时间选择对话框
TimePickerDialog dialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
Toast.makeText(MainActivity.this, hourOfDay + ":" + minute, Toast.LENGTH_SHORT).show();
}
//HOUR小时 MINUTE分钟 是否24小时制
}, calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), true);
//3.显示
dialog.show();
}
二、自定义对话框(重难点)
上一篇: 判断一棵树是否是完全二叉树
下一篇: OpenCV分水岭算法