热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

112android的AlertDialog浅析

之前用AlertDialog的时候其实没有仔细研究这个东西现在稍微研究了一下还是很有意思的我们搞几个方法来测试一下AlertDialogpublicvoidtest4(Vie

之前用AlertDialog的时候
其实没有仔细研究这个东西现在稍微研究了一下
还是很有意思的我们搞几个方法
来测试一下AlertDialogpublic void test4(View view) {View inflate = View.inflate(ctx, R.layout.dialog_abc, null);new AlertDialog.Builder(ctx).setView(inflate).show();}public void test3(View view) {new AlertDialog.Builder(ctx).setView(R.layout.dialog_abc).show();}public void test2(View view) {new AlertDialog.Builder(ctx).setMessage("ok").show();}public void test1(View view) {new AlertDialog.Builder(ctx).show();}先看test1
这里我们创建了AlertDialog.Builder
然后show方法展示
点击按钮我们发现,画面变暗了,但是弹框没出现
这是因为我们的dialog什么东西都没有然后我们看test2
我们设置了message
然后点击按钮
我们发现有一个弹框,里面是一句话然后我们看test3
我们设置了View
点击按钮
我们发现是按照我们的R.layout.dialog_abc来显示的然后我们看test4
和test3一样的效果
所以这两个都可以用然后我们看一下show方法的源码/*** Creates a {@link AlertDialog} with the arguments supplied to this builder and* {@link Dialog#show()}'s the dialog.*/public AlertDialog show() {AlertDialog dialog = create();dialog.show();return dialog;}原来Builder的show方法
依然是先create
然后再调用dialog的show方法
所以其实这是一种Builder的快捷方法那么我们看一下create方法的使用
Builder实际上就是一个工厂
可以批量生产dialog我们来一段代码AlertDialog.Builder builder = null;@Overridepublic void initViews() {builder = new AlertDialog.Builder(ctx).setTitle("abc");}public void test1View view) {builder.setMessage("AAA");AlertDialog dialog = builder.create();dialog.show();}public void test2(View view) {builder.setMessage("BBB");AlertDialog dialog = builder.create();dialog.show();}public void test3(View view) {builder.setMessage("CCC");AlertDialog dialog = builder.create();dialog.show();}我们看到
builder已经有了标题abc
然后我们可以根据需要,设置message
然后create出我们想要的dialog
然后show出来
所以builder就是一个工厂,一个生产者

 


推荐阅读
  • 请看|差别_Android 6.0 运行时权限处理解析
    请看|差别_Android 6.0 运行时权限处理解析 ... [详细]
  • Android Studio 中 Activity 组件详解
    本文介绍了 Android 开发中 Activity 的基本概念、生命周期、状态转换以及如何创建和管理 Activity。通过详细的解释和示例代码,帮助开发者更好地理解和使用 Activity。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 本文详细探讨了Android Activity中View的绘制流程和动画机制,包括Activity的生命周期、View的测量、布局和绘制过程以及动画对View的影响。通过实验验证,澄清了一些常见的误解,并提供了代码示例和执行结果。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
author-avatar
卟105932097
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有