用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是从简书的一篇短文,越来 ...
随机推荐
- C++实现的Buffer类
写C#的同志一定觉得Byte []比C++的 BYTE * 加 Length的方式好的多.一来,只需要一个对象就可以是表示一段字节流,另一方面,由于C#的特性,不需要象C++那样还要记得删除指针.由于 ...
- MyEclipse 远程调试Tomcat
当Web项目部署在服务器之后,当项目出现问题的时候就需要远程调试[远程调试的代码要与本地代码一致] 配置远程调试的具体步骤如下: 1.Linux 中配置tomcat在catalina.sh中添加如下C ...
- iOS7下Status Bar字体颜色修改
原文来自这里:iOS7下Status Bar字体颜色修改. 旧项目在iOS7上遇到status bar字体颜色需要修改的问题,症状如下:导航栏设置为黑色后,iphone上status bar的字体颜色 ...
- Android软件开发之SharedPreferences
SharedPreferences 一种轻量级的数据保存方式 以键值对的方式存储 用于存储小批量的数据 使用方法: SharedPreferences sp= getSharedPreferenc ...
- 将jquery.qqFace.js表情转换成微信的字符码
jquery.qqFace.js使用方法 引用 <script src="~/Content/qqFace/js/jquery.qqFace.js?v=3"></ ...
- LightOJ 1118--Incredible Molecules(两圆相交)
1118 - Incredible Molecules PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Lim ...
- Linux基础命令之文件和目录操作(一)
pwd print working directory的缩写,作用是显示当前工作目录的绝对路径,一般进行频繁切换路径时使用. -L 显示逻辑路径(或略软链接文件),不常用. -P 显示物理路径,不常用 ...
- Linux面试笔试题带答案【详解】
一.填空题:1. 在Linux系统中,以 ,该文件属性是 目录.8. 前台起动的进程使用 Ctrl+c 终止.9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置.10. 网络管 ...
- 解决IDEA右键 new 没有新建class/Interface等等选项
1.File->Project Structure 2.选择Modules-->右边Sources中选择所需目录 然后点击 Sources-->Apply-->OK 3.再在左 ...
- JavaScript脚本加载相关知识
<script>标签的位置 HTML4规范允许<script>可以放在<head>或<body>中. 但是,放在<head>中会导致性能问题 ...