Android常用的AlertDialog对话框及自定义对话框
发布时间 - 2026-01-11 00:30:58 点击率:次常用的Dialog有确认对话框,单选按钮对话框,多选按钮对话框,复选按钮对话框另外还有自定义的对话框

AlertDialog的常用方法
setTitle:为对话框设置标题
setMessage:为对话框设置内容
setIcon:为对话框设置图标
setItems设置对话框要显示的list
setMultiChoiceItems:一般用于复选框显示
setSingleChoiceItem:,设置单选按钮
setNeutralButton:普通按钮
setPositiveButton:添加确定按钮
setNegativeButton:添加取消按钮
setView:设置自定义样式
下面通过一个实例来了解这些方法
这是运行结果:
MainActivity.class
package com.example.alertdialog;
import android.R.bool;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.pm.LabeledIntent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button button1;
private Button button2;
private Button button3;
private Button button4;
private Button button5;
private int mark=0;
private String item[] = { "学生", "工人", "教师", "农民" };
private String multChoice[]={"旅游","电影","运动","读书"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) findViewById(R.id.btn_button1);
button2 = (Button) findViewById(R.id.btn_button2);
button3 = (Button) findViewById(R.id.btn_button3);
button4 = (Button) findViewById(R.id.btn_button4);
button5 = (Button) findViewById(R.id.btn_button5);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
button5.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
//确认对话框
case R.id.btn_button1: {
AlertDialog.Builder builder = new Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("确认对话框");
builder.setMessage("确认退出?");
builder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你单击了确定按钮",
Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你单击了取消按钮",
Toast.LENGTH_SHORT).show();
}
});
builder.create();
builder.show();
break;
}
//列表对话框
case R.id.btn_button2: {
AlertDialog.Builder builder = new Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("职业");
builder.setItems(item, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你的职业是" + item[which],
Toast.LENGTH_SHORT).show();
}
});
builder.create();
builder.show();
break;
}
//多选对话框
case R.id.btn_button3: {
final boolean choose[]=new boolean[multChoice.length];
AlertDialog.Builder builder = new Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("爱好");
builder.setMultiChoiceItems(multChoice, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// TODO Auto-generated method stub
choose[which]=isChecked;
}
});
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String result="";
for(int i=0;i<multChoice.length;i++){
if(choose[i]){
result+=multChoice[i]+" ";
}
}
Toast.makeText(MainActivity.this, "你的爱好["+result+"]", Toast.LENGTH_SHORT).show();
}
});
builder.create();
builder.show();
break;
}
//单选对话框
case R.id.btn_button4: {
mark=0;
AlertDialog.Builder builder = new Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("职业");
builder.setSingleChoiceItems(item, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
mark=which;
}
});
builder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你的职业:"+item[mark], Toast.LENGTH_SHORT).show();
}
});
builder.create();
builder.show();
break;
}
//自定义对话框
case R.id.btn_button5: {
LayoutInflater inflater=LayoutInflater.from(this);
View view=inflater.inflate(R.layout.item, null);
AlertDialog.Builder builder = new Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("自定义对话框");
builder.setView(view);
builder.setNeutralButton("普通按钮", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,"我是自定义的对话框哦",Toast.LENGTH_SHORT).show();
}
});
builder.create();
builder.show();
break;
}
}
}
}
布局文件
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:id="@+id/btn_button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="确认对话框" /> <Button android:id="@+id/btn_button2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="列表对话框" /> <Button android:id="@+id/btn_button3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="多选对话框" /> <Button android:id="@+id/btn_button4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="单选对话框" /> <Button android:id="@+id/btn_button5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="自定义对话框" /> </LinearLayout> </RelativeLayout>
自定义的对话框布局文件
item.xml
<?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" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitCenter" android:src="@drawable/icon" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="我是自定义的对话框" /> </LinearLayout>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# android
# alertdialog
# android自定义对话框
# Android AlertDialog(对话框)实例详解
# Android中AlertDialog四种对话框的最科学编写用法(实例代码)
# Android使用AlertDialog创建对话框
# Android使用AlertDialog实现对话框
# Android对话框AlertDialog详解
# 对话框
# 自定义
# 单选
# 我是
# 多选
# 单击
# 这是
# 复选框
# 复选
# public
# implements
# Toast
# private
# extends
# Button
# LabeledIntent
# view
# DialogInterface
# pm
# OnClickListener
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
如何在阿里云购买域名并搭建网站?
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
如何快速完成中国万网建站详细流程?
Android自定义listview布局实现上拉加载下拉刷新功能
详解阿里云nginx服务器多站点的配置
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
PHP正则匹配日期和时间(时间戳转换)的实例代码
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
详解Android中Activity的四大启动模式实验简述
如何在Ubuntu系统下快速搭建WordPress个人网站?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
JavaScript实现Fly Bird小游戏
Laravel如何使用Telescope进行调试?(安装和使用教程)
javascript基于原型链的继承及call和apply函数用法分析
Python结构化数据采集_字段抽取解析【教程】
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Angular 表单中正确绑定输入值以确保提交与验证正常工作
Swift中循环语句中的转移语句 break 和 continue
如何快速生成橙子建站落地页链接?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何在不使用负向后查找的情况下匹配特定条件前的换行符
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
在线制作视频的网站有哪些,电脑如何制作视频短片?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
简单实现Android验证码
Laravel定时任务怎么设置_Laravel Crontab调度器配置
简历没回改:利用AI润色让你的文字更专业
大同网页,大同瑞慈医院官网?
如何用wdcp快速搭建高效网站?
简历在线制作网站免费版,如何创建个人简历?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Java类加载基本过程详细介绍
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?

