一般对话框,单选复选对话框
一般对话框

//一般对话框
public void bt_1(View v) {
//不能直接实例化
//内部提供构造器
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("确认对话框")
.setMessage("确定删除?")
.setPositiveButton("确认", new DialogInterface.OnClickListener() {//正向按钮
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Text5Activity.this, "执行删除,which=" + which, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//负面按钮
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Text5Activity.this, "取消删除,which=" + which, Toast.LENGTH_SHORT).show();
}
})
.setNeutralButton("中立", new DialogInterface.OnClickListener() {//中立按钮
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Text5Activity.this, "普通按钮,+which=" + which, Toast.LENGTH_SHORT).show();
}
})
.setCancelable(false)
.show();//显示对话框
}
单选对话框

//单选对话框
public void bt_2(View v) {
//String终态,可以让这个常量的生命周期延长到整个实例
final String[] str = {"男", "女"};
new AlertDialog.Builder(this)
.setTitle("单选对话框")
.setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Text5Activity.this, "which=" + which + "选中的值是" + str[which], Toast.LENGTH_SHORT).show();
//点击关闭对话框
//a.dismiss();不能在内部用
dialog.dismiss();
}
})
.setCancelable(false)
.show();
}
复选对话框

//复选对话框
public void bt_3(View v)
{
final String []str={"宝马","奔驰","奇瑞","宾利"};
final boolean[]ch={true,false,false,true};
new AlertDialog.Builder(this)
.setTitle("复选对话框")
.setMultiChoiceItems(str, ch, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//改变对应项的选中状态
ch[which]=isChecked;
}
})
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int i = 0;
//获取最终选择状态
for (boolean b : ch) {
Toast.makeText(Text5Activity.this, str[i] + "选中状态=" + (b ? "选中" : "未选中"), Toast.LENGTH_LONG).show();
i++;
}
}
})
.setNegativeButton("取消", null)
.setCancelable(false)
.show();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现