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类加载基本过程详细介绍  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?