Android Dialog详解及实例代码

发布时间 - 2026-01-11 00:53:32    点击率:

 Android Dialog详解及实例代码

概述:

Android开发中最常用的就是Dialog类,除了自定义dialog布局,最多的就是用在弹出对话框、进度条、输入框、单选、复选框。

1、选择对话框:

AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
dialog.setTitle("选择对话框"); 
dialog.setMessage("请选择确认或取消"); 
dialog.setCancelable(false); //设置按下返回键不能消失 
dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() { 
  @Override 
  public void onClick(DialogInterface dialog, int which) { 
    Toast.makeText(MainActivity.this, "您选择了确认", Toast.LENGTH_LONG).show(); 
      } 
    }); 
    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
        Toast.makeText(MainActivity.this, "您选择了取消", Toast.LENGTH_LONG).show(); 
      } 
    }); 
dialog.show();//显示弹出窗口 

2、进度条

ProgressDialog progressDialog = new ProgressDialog(this); 
progressDialog.setTitle("显示进度条"); 
progressDialog.setMessage("加载中..."); 
progressDialog.setCancelable(true); 
progressDialog.show(); 

3、弹出输入框

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("弹出输入框"); 
builder.setMessage("输入内容"); 
final EditText editText = new EditText(this); 
builder.setView(editText); 
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { 
      @Override 
  public void onClick(DialogInterface dialog, int which) { 
    Toast.makeText(MainActivity.this, "您输入了" + editText.getText().toString(), Toast.LENGTH_SHORT).show(); 
      } 
  }); 
builder.setNegativeButton("取消", null); 
builder.show(); 

4、弹出单选框

final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("弹出单选框"); 
final String[] choice = new String[]{"Java", "C++", "PHP"}; 
builder.setSingleChoiceItems(choice, 0, 
  new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
      Toast.makeText(MainActivity.this, "您选择了" + choice[which], Toast.LENGTH_LONG).show(); 
      dialog.dismiss(); // 让窗口消失 
    } 
  }); 
builder.create().show(); 

5、弹出复选框

final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("弹出多选框"); 
final String[] choice = new String[]{"Android", "IOS", "Windos Phone"}; // 选择项 
final boolean[] isCheck = new boolean[choice.length]; // 是否被选中 
builder.setMultiChoiceItems(choice, null, 
  new DialogInterface.OnMultiChoiceClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
      if (isChecked == true) 
        isCheck[which] = true; 
      else if(isChecked == false) 
        isCheck[which] = false; 
     } 
  }); 
builder.setNegativeButton("取消", null); 
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { 
  @Override 
  public void onClick(DialogInterface dialog, int which) { 
    String isSelected = "您选择了"; 
    for (int i = 0; i < choice.length; i++) { 
      if (isCheck[i] == true) { 
        isSelected += choice[i]+","; // 将选择的内容加上 
      } 
    } 
    Toast.makeText(MainActivity.this, isSelected, Toast.LENGTH_LONG).show(); 
   } 
}); 
builder.create(); 
builder.show(); 


6、自定义布局的Dialog

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
 final AlertDialog dialog = builder.create(); 
 View view = View.inflate(this, R.layout.personal_modifyhead_dialog, null); 
 dialog.setView(view, 0, 0, 0, 0);// 设置边距为0,保证在2.x的版本上运行没问题 
 dialog.show(); 
 
 AutoRelativeLayout rl_photograph = (AutoRelativeLayout) view.findViewById(R.id.rl_photograph); 
 rl_photograph.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
     presenter.modiftHeadFromPhotograph(); 
     dialog.dismiss(); 
   } 
 }); 
 
 AutoRelativeLayout rl_album = (AutoRelativeLayout) view.findViewById(R.id.rl_album); 
 rl_album.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
     presenter.modifyHeadFromAlbum(); 
     dialog.dismiss(); 
   } 
 }); 

上面就是日常开发中常用的一些,在此记录,以便日后查询。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # Dialog  # Dialog详解  # Dialog简单实例  # android控件封装 自己封装的dialog控件  # android中ProgressDialog与ProgressBar的使用详解  # Android中自定义对话框(Dialog)的实例代码  # Android实现点击AlertDialog上按钮时不关闭对话框的方法  # Android中Dialog去黑边的方法  # android dialog自定义实例详解  # android自由改变Dialog窗口位置的方法  # Android开发笔记之:Dialog的使用详解  # 探讨:你真的会用Android的Dialog吗?  # 弹出  # 选择了  # 对话框  # 输入框  # 进度条  # 自定义  # 复选框  # 最多  # 在此  # 单选框  # 希望能  # 请选择  # 按下  # 谢谢大家  # 用在  # 最常用  # 多选  # 弹出窗口  # 单选  # 日后 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  如何在云虚拟主机上快速搭建个人网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何在Windows服务器上快速搭建网站?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  bing浏览器学术搜索入口_bing学术文献检索地址  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  ,网页ppt怎么弄成自己的ppt?  Laravel如何生成URL和重定向?(路由助手函数)  linux top下的 minerd 木马清除方法  Laravel如何实现API资源集合?(Resource Collection教程)  如何用JavaScript实现文本编辑器_光标和选区怎么处理  详解jQuery中基本的动画方法  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  智能起名网站制作软件有哪些,制作logo的软件?  教你用AI将一段旋律扩展成一首完整的曲子  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何在局域网内绑定自建网站域名?  如何快速搭建高效简练网站?  Python数据仓库与ETL构建实战_Airflow调度流程详解  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Java类加载基本过程详细介绍  Laravel如何使用Gate和Policy进行授权?(权限控制)  IOS倒计时设置UIButton标题title的抖动问题  佛山网站制作系统,佛山企业变更地址网上办理步骤?  在centOS 7安装mysql 5.7的详细教程  Laravel中的withCount方法怎么高效统计关联模型数量  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何确保FTP站点访问权限与数据传输安全?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  使用豆包 AI 辅助进行简单网页 HTML 结构设计  JS实现鼠标移上去显示图片或微信二维码  如何快速搭建高效可靠的建站解决方案?  如何在建站之星网店版论坛获取技术支持?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Android Socket接口实现即时通讯实例代码  javascript中的try catch异常捕获机制用法分析