用Anko和Kotlin实现Android上的对话框和警告提示(KAD 24)
时间:Mar 9, 2017
原文链接:https://antonioleiva.com/dialogs-android-anko-kotlin/

借助Builder,在Android创建警告提示和对话框相对来说是件简单的事,但是由于语言繁杂,有些提示通常就变得十分含糊。
在Kotlin中,仅Lambda表达式,可以帮助我们理解一点代码是怎样处理的。
但是,有了Anko,我们能够这一切都更加简单,在这篇文章中我们看到是怎么回事。
在Kotlin用Anko做警告提示
通过Anko编写警告提示是非常容易的。只需要创建一个alert代码块:
alert("Testing alerts") {
...
}.show()
在这个代码块中,你能够规定一些事情,如提示的标题,或你要显示的按钮:
alert("Testing alerts") {
title("Alert")
yesButton { toast("Yess!!!") }
noButton { }
}.show()
这块代码的结果是这样的:

你还可以用positiveButton、negativeButton和neutralButton方法定制一些动作:
alert("Testing alerts") {
title("Alert")
positiveButton("Cool") { toast("Yess!!!") }
negativeButton("Never Ever") { }
neutralButton("I'll think about it")
}.show()

当然,你甚至还能通过Anko加定制的视图:
alert {
title("Alert")
positiveButton("Cool") { toast("Yess!!!") }
customView {
linearLayout {
textView("I'm a text")
button("I'm a button")
padding = dip(16)
}
}
}.show()

进度对话框
Anko还有另一特性,可以创建进度对话框,和不确定进度。
这里给出第二例子,你能够用这样一个简单的方法,创建进度对话框:
indeterminateProgressDialog("This a progress dialog").show()
其结果如下:

结论
由于有了Anko和Kotlin,如你所见创建小的DSL是件简单的事。理想情况下,你可以在框架的任何一个部分创建DSL,所以它使得交互非常容易。
在稍后的文章中,我们说明怎样通过SQLite处理数据库。
现在,是否该阅读免费使用指南,来学习如何构建你的第一个项目?或是读本书,学习如何从头开始创建一个完整的应用程序?
用Anko和Kotlin实现Android上的对话框和警告提示(KAD 24)的更多相关文章
- 使用Kotlin进行Android开发
Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者.Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发者使用而不断进化时,Java并 ...
- 在Android上运用Anko和Kotlin开发数据库:SQLite从来不是一件轻松的事(KAD25)
作者:Antonio Leiva 时间:Mar 30, 2017 原文链接:https://antonioleiva.com/databases-anko-kotlin/ 事实告诉我们:在Androi ...
- 使用Kotlin&Anko, 扔掉XML开发Android应用
尝鲜使用Kotlin写了一段时间Android.说大幅度的减少了Java代码一点不夸张.用Java的时候动不动就new一个OnClickListener()匿名类,动不动就类型转换的地方都可以省下很多 ...
- 用Kotlin开发Android应用(IV):定制视图和Android扩展
原文标题:Kotlin for Android (IV): Custom Views and Android Extensions 原文链接:http://antonioleiva.com/kotli ...
- 即刻开始使用Kotlin开发Android的12个原因(KAD 30)
作者:Antonio Leiva 时间:Jul, 11, 2017 原文链接:https://antonioleiva.com/reasons-kotlin-android/ 这组文章已到最后了,它们 ...
- 使用Kotlin开发Android应用(IV):自定义视图和Android扩展
在读完扩展函数和默认值这篇文章之后,那么接下来要介绍什么呢?在本系列第一篇文章中我们说过,Kotlin使得Android开发更加简单,本文我们将进一步作介绍. 自定义视图 你应该还记得,在说到Kotl ...
- Kotlin与Android SDK 集成(KAD 05)
作者:Antonio Leiva 时间:Dec 19, 2016 原文链接:https://antonioleiva.com/kotlin-integrations-android-sdk/ 使用Ko ...
- 用Kotlin开发Android应用(I):介绍
关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...
- 初次尝试用Kotlin实现Android项目
Kotlin: The Swift of Android 起这个文内标题的原因很简单,就是对Kotlin抱有希望--能使Android的开发更简洁.高效及安全.知道Kotlin是从简书的一篇短文,越来 ...
随机推荐
- 调节Ubuntu分辨率
列出当前支持的分辨率 使用 xrandr 命令新增显示模式 至此分辨率更改完成 重启后会失效 在 ~/.profile 最末尾添加修改分辨率的命令
- StringJoiner
示例一 public class StringJoinerTest1 { public static void main(String[] args) { StringJoiner joiner = ...
- Subclass UICollectionViewFlowLayout,自定义流布局
需求:为实现第一行显示一个,第二行以后显示两个 方案1:用系统自带的流布局,实现的效果是,若第二行只有一个,则系统默认会居中显示,不是左对齐(如下图),不符合项目要求. 方案2:自定义系统的UICol ...
- ZXing.net 生成和解析二维码
nuget引用zxing.net包 public partial class Form1 : Form { public Form1() { InitializeComponent(); } priv ...
- 字符编码ascii、unicode、utf-‐8、gbk 的关系
ASIIC码: 计算机是美国人发明和最早使用的,他们为了解决计算机处理字符串的问题,就将数字字母和一些常用的符号做成了一套编码,这个编码就是ASIIC码.ASIIC码包括数字大小写字母和常用符号,一共 ...
- 谈个人对avascript面向对象的理解
javascript,不但是javascript或者是别的语音,大多数都有一句经典的话:一切皆对象. 下面谈谈我个人对面向对象的理解,为什么要用面向对象来写js,这话我思考了很久,最后得出的结论就是: ...
- day 20 约束 异常处理 MD5
1.类的约束(重点): 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementError # 项目经理 class Base: # 对子类进行了约束. 必须重写该方法 ...
- Python学习 :函数
函数 函数(Functions) 是指可重复使用的程序片段.它们允许你为某个代码块赋予名字,允许你通过这一特殊的名字在你的程序任何地方来运行代码块,并可重复任何次数.这就是调用(Calling)函数. ...
- Java学习笔记二十七:Java中的抽象类
Java中的抽象类 一:Java抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就 ...
- 用elk+filebeat监控容器日志
elk 为 elasticsearch(查询搜索引擎),logstash(对日志进行分析和过滤,然后转发给elasticsearch),kibana(一个web图形界面用于可视化elasticsea ...