一、普通警告对话框(AlertDialog)
以点击Button,弹出对话框为例
1.学习准备
2.创建对话框
(1) 是通过AlertDialog.Builder()创建,不是直接创建
需要传参数context环境,在Activity中,可以写this
(2)设置警告对话框的属性:title、message等
(3)点击对话框(取消/确定)后 的操作,应写在Listener中
二、单选对话框(setSingleChoiceItems)
代码
package com.example.myapplication;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class SingleChoiceActivity extends AppCompatActivity {
private String[] option = new String[]{"默认", "小号", "大号"};//选项数组
private int[] size = new int[]{20,10,40};//选项对应尺寸
private int index;//定义一个索引变量,用来保存选择后的索引值,让“确定”用
private TextView tv_Single; //初始化
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_choice);
tv_Single = findViewById(R.id.tv_Single); //初始化
}
public void adjust_Dialog(View view) {
new AlertDialog.Builder(this)
.setTitle("设置字体大小")
.setSingleChoiceItems(option,0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
index = i; //将选择的索引值保存下来
}
})
.setNegativeButton("取消",null)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
tv_Single.setTextSize(size[index]); //通过index找到size,更换字体大小
}
})
.create().show();
}
}
三、多选对话框
package com.example.myapplication.dialog;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.icu.lang.UCharacterEnums;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.example.myapplication.R;
public class MultipleChoiceActivity extends AppCompatActivity {
private String MulOption[] = //多选选项数组
new String[]{"多选选项1","多选选项2","多选选项3","其他"} ;
private boolean checkedItems[] = new boolean[]{false,false,false,false,};//是否选中记录数组,默认为都不选中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_multiple_choice);
}
public void showMultipleDialog(View view) {
new AlertDialog.Builder(this)
.setTitle("多选警示对话框")
.setMultiChoiceItems(MulOption, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int index, boolean isChecked) {//这里有传入boolean isChecked 是否选中
//保存所选选项
checkedItems[index] = isChecked; //根据每个选项是否选中(true/false),更改checkedItems数组内容
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//显示出来
StringBuffer stringBuffer =new StringBuffer(); //StringBuffer效率高于String
for(int i=0;i< checkedItems.length; i++) {
if (checkedItems[i]) {
stringBuffer.append(MulOption[i]).append(" ");
}
}
Toast.makeText(MultipleChoiceActivity.this,
stringBuffer.toString(), Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("取消",null)
.create().show();
}
}