对警报线程池的警报线程_您可能对警报对话框不了解的地方

2023-11-07 00:59

本文主要是介绍对警报线程池的警报线程_您可能对警报对话框不了解的地方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对警报线程池的警报线程

This seemingly simple UI element has a lot of hidden features. If you have ever developed an application, you probably have used it.

这个看似简单的UI元素具有许多隐藏功能。 如果您曾经开发过应用程序,则可能已经使用过。

An AlertDialog’s main function is to notify users of something that is going to happen that requires their immediate attention and an action to be made on their end. The uses of an AlertDialog are numerous and could range from:

AlertDialog的主要功能是通知用户即将发生的事情,这些事情需要他们的立即注意并最终采取措施。 AlertDialog的用途很多,范围可能是:

  • Ask the user to grant permission for your application to do something (location)

    要求用户授予您的应用程序执行某项操作的权限(位置)
  • Alert the user to an action that is about to take place (remove photo)

    提醒用户即将执行的操作(删除照片)
  • Notify the user of what is going on (feature not available)

    通知用户正在发生的事情(功能不可用)

What this article will not cover is the basic use cases and construction of an AlertDialog, but it will cover some more advanced uses and caveats of this UI element.

本文将不介绍AlertDialog的基本用例和构造,但将介绍此UI元素的一些更高级的用法和注意事项。

For this article, I will be showing examples written in Kotlin.

对于本文,我将展示用Kotlin编写的示例。

AlertDialog标题的长度 (Length of AlertDialog’s Title)

Setting the title on an AlertDialog is easy. Using the following method,

在AlertDialog上设置标题很容易。 使用以下方法,

builder.setTitle(title), //where title is a CharSequence. 
setTitle
setTitle

What is not apparent from the code, is that the dialog’s title is limited to only two lines. Meaning, that if you write a long title, it will be truncated and you will see three dots (…) being displayed signifying the sentence is longer than it appears.

从代码中看不出来的是,对话框的标题仅限于两行。 意思是,如果您写了一个长标题,它将被截断,并且您将看到显示三个点(…),表示该句子的长度超过了它的显示长度。

Image for post
Truncated Title
标题被截断

But what If we needed more room for our title? We can use the method setCustomTitle which receives a View as a parameter.

但是,如果我们需要更多的标题空间呢? 我们可以使用setCustomTitle方法,该方法接收一个View作为参数。

setCustomTitle
setCustomTitle

Using the above, we can easily create a TextView and style it to our liking to get the desired result.

使用上面的代码,我们可以轻松地创建一个TextView并根据自己的喜好对其进行样式设置,以获得所需的结果。

An AlertDialog with a custom title
具有自定义标题的AlertDialog
Image for post
Our Result
我们的结果

中立按钮 (The Neutral Button)

While you may be familiar with the approve or reject buttons associated with the AlertDialog, there is also one other type of button available. That button is the NeutralButton. What is special about this button is that it signals to the user that if he/she makes this choice, nothing will be affected.

尽管您可能熟悉与AlertDialog相关的批准或拒绝按钮,但还有另一种类型的按钮可用。 该按钮是NeutralButton 。 此按钮的特殊之处在于,它向用户发出信号,如果他/她做出了此选择,则不会受到任何影响。

Neutral Button
中立按钮

If you take another look at the screenshot above, you can see that the button with the Dismiss text is a neutral button.

如果您再看一下上面的屏幕截图,您会看到带有“关闭”文本的按钮是一个中性按钮。

物品或讯息 (Items Or Message)

After setting the title, we can set the message of our alert dialog. Again, what if we wanted the user to select something in our alert dialog (out of a list)? For that, we can use the setItems method:

设置标题后,我们可以设置警报对话框的消息。 同样,如果我们希望用户在警报对话框中(从列表中)选择某些内容,该怎么办? 为此,我们可以使用setItems方法:

setItems
setItems

Or we can use the setSingleChoiceItems method:

或者我们可以使用setSingleChoiceItems方法:

Here, we come to a fork in the road, because we will have to choose what is more important to us: a list of items or the alert dialog’s message. We can’t have both. To quote the documentation:

在这里,我们走上了一条路,因为我们必须选择对我们更重要的内容:项目列表或警报对话框的消息。 我们不能两者兼得。 引用文档:

…Because the list appears in the dialog’s content area, the dialog cannot show both a message and a list…

…因为该列表出现在对话框的内容区域中,所以该对话框无法同时显示消息和列表…

When using an items list, it is a good idea to use an adapter to handle the interaction and management of our list of items. Below is a simple demonstration of just how to achieve that.

使用项目列表时,最好使用适配器来处理项目列表的交互和管理。 以下是如何实现该目标的简单演示。

MainActivity.kt
MainActivity.kt
AlertDialogListAdapter.kt
AlertDialogListAdapter.kt
list_item.xml
list_item.xml
Image for post
List of items in AlertDialog
AlertDialog中的项目列表

If you don’t want to deal with an adapter, you can use the setSingleChoiceItems method like so:

如果您不想使用适配器,则可以使用setSingleChoiceItems方法,如下所示:

Using SetSingleChoiceItems
使用SetSingleChoiceItems

And you’ll get the following:

您将获得以下信息:

Image for post

图像警报 (Image Alert)

What if we wanted to have a message and an image in our AlertDialog? We can achieve that by using the setView method:

如果我们想在AlertDialog中显示消息和图像怎么办? 我们可以通过使用setView方法来实现:

setView
setView
MainActivity.kt
MainActivity.kt
custom_view.xml
custom_view.xml
Image for post
Our Custom View
我们的自定义视图

🙌 In fact, you may have noticed that even for the previous problem, we can use a custom view that has a listview and a textview to handle the scenario of a message and a list of items.

🙌实际上,您可能已经注意到,即使对于先前的问题,我们也可以使用具有listview和textview的自定义视图来处理消息和项目列表的情况。

Those are just some of the more allusive possibilities you have with the AlertDialog. If you have more examples like this, feel free to share them in the comments.

这些只是您使用AlertDialog所具有的更多暗示性可能性。 如果您有更多类似的示例,请随时在评论中分享。

You can see all the examples shown in this article in an application I created at this GitHub repository.

您可以在我在GitHub存储库中创建的应用程序中看到本文显示的所有示例。

翻译自: https://proandroiddev.com/what-you-might-not-know-about-the-alertdialog-2bdc55f3d907

对警报线程池的警报线程


http://www.taodudu.cc/news/show-8172790.html

相关文章:

  • 7-9 红色警报 (25分)
  • PTA-L2-013 红色警报 (25分)
  • Qt去除未使用变量警报
  • 今天您手机上的“总统警报”弹出窗口是什么?
  • 51单片机警报装置
  • SQL Server代理警报
  • 智慧家——火灾警报
  • 美的冲刺港股:年营收3457亿 不缺钱,但资本运作频频
  • 07胡润IT富豪榜发布:李彦宏成IT首富
  • 设置 google 搜索引擎 不跳转 对应 地区语言页面
  • 基本过程: 小区搜索
  • 地区选择控件的展示和使用
  • 各搜索引擎高级搜索备忘
  • Google搜索指定地区,不跳转
  • elementUI的el-cascader实现省市区搜索
  • vue3实现模糊搜索功能
  • 百度地图---poi地区搜索
  • 百度的地区搜索是如何实现的?
  • C语言枚举打桩
  • 单元测试PowerMockito打桩失效
  • linux库打桩
  • go stub打桩测试
  • 【流量分析】Godzilla分析
  • (纪中)2416. Berry Picking【数学】
  • 2020寒假【gmoj2416】【Berry Picking】
  • 牛客练习赛62(基于官方题解的补题 A ~ D)
  • CQOI2007矩形
  • 一篇文章带你学完链表基础(C语言)
  • 好学易懂 从零开始的插头DP(二)
  • 航空插头在端接的时候我们需要注意哪些问题呢?
  • 这篇关于对警报线程池的警报线程_您可能对警报对话框不了解的地方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/360175

    相关文章

    关于数据埋点,你需要了解这些基本知识

    产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

    速了解MySQL 数据库不同存储引擎

    快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

    线程的四种操作

    所属专栏:Java学习        1. 线程的开启 start和run的区别: run:描述了线程要执行的任务,也可以称为线程的入口 start:调用系统函数,真正的在系统内核中创建线程(创建PCB,加入到链表中),此处的start会根据不同的系统,分别调用不同的api,创建好之后的线程,再单独去执行run(所以说,start的本质是调用系统api,系统的api

    java线程深度解析(六)——线程池技术

    http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi

    java线程深度解析(五)——并发模型(生产者-消费者)

    http://blog.csdn.net/Daybreak1209/article/details/51378055 三、生产者-消费者模式     在经典的多线程模式中,生产者-消费者为多线程间协作提供了良好的解决方案。基本原理是两类线程,即若干个生产者和若干个消费者,生产者负责提交用户请求任务(到内存缓冲区),消费者线程负责处理任务(从内存缓冲区中取任务进行处理),两类线程之

    java线程深度解析(四)——并发模型(Master-Worker)

    http://blog.csdn.net/daybreak1209/article/details/51372929 二、Master-worker ——分而治之      Master-worker常用的并行模式之一,核心思想是由两个进程协作工作,master负责接收和分配任务,worker负责处理任务,并把处理结果返回给Master进程,由Master进行汇总,返回给客

    java线程深度解析(二)——线程互斥技术与线程间通信

    http://blog.csdn.net/daybreak1209/article/details/51307679      在java多线程——线程同步问题中,对于多线程下程序启动时出现的线程安全问题的背景和初步解决方案已经有了详细的介绍。本文将再度深入解析对线程代码块和方法的同步控制和多线程间通信的实例。 一、再现多线程下安全问题 先看开启两条线程,分别按序打印字符串的

    java线程深度解析(一)——java new 接口?匿名内部类给你答案

    http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

    PHP: 深入了解一致性哈希

    前言 随着memcache、redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取模运

    找出php中可能有问题的代码行

    前言 当你发现一个平时占用cpu比较少的进程突然间占用cpu接近100%时,你如何找到导致cpu飙升的原因?我的思路是,首先找到进程正在执行的代码行,从而确定可能有问题的代码段。然后,再仔细分析有问题的代码段,从而找出原因。 如果你的程序使用的是c、c++编写,那么你可以很容易的找到正在执行的代码行。但是,程序是php编写的,如何找到可能有问题的代码行呢?这个问题就是本文要解决的问题。 背景