Android Dialog 普通对话框 单选对话框 多选对话框
Posted 今晚看星星
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Dialog 普通对话框 单选对话框 多选对话框相关的知识,希望对你有一定的参考价值。
1 Dialog介绍
- 对话框是程序不用户交互的一种方式,通常用亍显示当前程序提示信息以及相关说明,以小窗口形式展现
2 AlertDialog对话框
- AlertDialog是通过
Builder
(构造器)来构建 - AlertDialog为Dialog类的子类,它可以在对话框上提供一些按钮供用户选择。Builder类是AlertDialog类的内部类,它的主要作用是用来创建AlertDialog类的对象的,可以把它理解为AlertDialog的构造器
2.1 主要方法
AlertDialog.Builder setIcon (int iconId)
- 设定对话框的图标。其中参数为图标的资源ID,返回值为
AlertDialog.Builder
类的对象
AlertDialog.Builder setTitle(CharSequence title)
- 设定对话框的标题。其中参数为对话框的标题字符串,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setMessage(CharSequence message)
- 设定对话框的内容。其中参数为对话框的提示内容字符串,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setPositiveButton(CharSequencetext,DialogInterface.OnClickListener listener)
- 设定对话框上的**确定(肯定)**按钮。其中参数text为按钮上显示的文本,listener为该按钮的单击事件监听器,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setNegativeButton(CharSequence text,DialogInterface.OnClickListener listener)
- 设定对话框上的**取消(否定)**按钮。其中参数text为按钮上显示的文本,listener为该按钮
的单击事件监听器,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)
- 设定对话框上的**忽略(中立)**按钮。其中参数text为按钮上显示的文本,listener为该按钮
的单击事件监听器,返回值为AlertDialog.Builder类的对象
AlertDialog create()
- 创建一个对话框,返回值为AlertDialog类的对象
AlertDialog show()
- 显示一个对话框,返回值为AlertDialog类的对象
3 设置不同按钮
步骤
- 创建构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- 设置属性
- 设置内容
builder.setMessage(String str)
- 设置基本Positive按钮与Negative按钮
- 创建并展示
private void dialogAlert_1() {
// 1. 绑定控件
bt_1 = findViewById(R.id.bt_1);
bt_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// alertDialog 声明
// 1. 创建AlertDialog 构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
// 设置dialog的组成部分
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("温馨提示");
// 2. 设置内容
builder.setMessage("确定要退出吗?");
// 3. 设置点击按钮
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击逻辑
finish(); // 程序退出
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 不退出
}
});
// 4. 组合各部分后显示
builder.create().show();
}
});
}
4 设置单选按钮
4.1 单选按钮方法
public AlertDialog.Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, android.content.DialogInterface.OnClickListener listener
- 第一个参数指定我们要显示的一组下拉单选框的数据集合
- 第二个参数代表索引,指定默认哪一个单选框被勾选上
- 第三个参数给每一个单选项绑定一个监听器
步骤
- 创建构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- 设置属性
- 设置单选按钮内容以及其点击事件
builder.setSingleChoiceItems()
- 设置基本Positive按钮与Negative按钮
- 创建并展示
private void dialogAlert_2() {
// 1. 绑定控件
bt_2 = findViewById(R.id.bt_2);
// 2.保存选中信息
bt_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 创建构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("选择城市");
// 设置内容,
final String[] cities = {"北京", "上海", "广州", "深圳"};
builder.setSingleChoiceItems(cities, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 传出数据???
Toast.makeText(MainActivity.this, "选中的选项为: " + which, Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 不进行操作
}
});
// 显示dialog
builder.create().show();
}
});
}
5 设置多选按钮
public AlertDialog.Builder setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, android.content.DialogInterface.OnMultiChoiceClickListener listener)
- 第一个参数指定我们要显示的一组下拉多选框的数据集合
- 第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如果希望指定哪一个多选选项框被选择, 需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,例如 {true, false, false, true}
- 第三个参数给每一个多选项绑定一个监听器
步骤:
- 创建构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- 设置属性
- 设置单选按钮内容以及其点击事件
builder.setMultiChoiceItems()
- 设置基本Positive按钮与Negative按钮
- 创建并展示
private void dialogAlert_3() {
// 1. 绑定控件
bt_3 = findViewById(R.id.bt_3);
bt_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
// 1. 设置其中的内容
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("选择多个城市");
final String[] cities = {"北京", "上海", "深圳", "广州", "香港", "澳门"};
boolean[] cityChoices = {false, true, false, false, false, false};
//2. 设置内容
builder.setMultiChoiceItems(cities, cityChoices, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
}
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 不操作
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
}
});
}
以上是关于Android Dialog 普通对话框 单选对话框 多选对话框的主要内容,如果未能解决你的问题,请参考以下文章