作者:Antonio Leiva

时间:Mar 9, 2017

原文链接:https://antonioleiva.com/dialogs-android-anko-kotlin/

借助Builder,在Android创建警告提示和对话框相对来说是件简单的事,但是由于语言繁杂,有些提示通常就变得十分含糊。

在Kotlin中,仅Lambda表达式,可以帮助我们理解一点代码是怎样处理的。

但是,有了Anko,我们能够这一切都更加简单,在这篇文章中我们看到是怎么回事。

在Kotlin用Anko做警告提示

通过Anko编写警告提示是非常容易的。只需要创建一个alert代码块:

  1. alert("Testing alerts") {
  2. ...
  3. }.show()

在这个代码块中,你能够规定一些事情,如提示的标题,或你要显示的按钮:

  1. alert("Testing alerts") {
  2. title("Alert")
  3. yesButton { toast("Yess!!!") }
  4. noButton { }
  5. }.show()

这块代码的结果是这样的:

你还可以用positiveButtonnegativeButtonneutralButton方法定制一些动作:

  1. alert("Testing alerts") {
  2. title("Alert")
  3. positiveButton("Cool") { toast("Yess!!!") }
  4. negativeButton("Never Ever") { }
  5. neutralButton("I'll think about it")
  6. }.show()

当然,你甚至还能通过Anko加定制的视图:

  1. alert {
  2. title("Alert")
  3. positiveButton("Cool") { toast("Yess!!!") }
  4. customView {
  5. linearLayout {
  6. textView("I'm a text")
  7. button("I'm a button")
  8. padding = dip(16)
  9. }
  10. }
  11. }.show()

进度对话框

Anko还有另一特性,可以创建进度对话框,和不确定进度。

这里给出第二例子,你能够用这样一个简单的方法,创建进度对话框:

  1. indeterminateProgressDialog("This a progress dialog").show()

其结果如下:

结论

由于有了Anko和Kotlin,如你所见创建小的DSL是件简单的事。理想情况下,你可以在框架的任何一个部分创建DSL,所以它使得交互非常容易。

稍后的文章中,我们说明怎样通过SQLite处理数据库。

现在,是否该阅读免费使用指南,来学习如何构建你的第一个项目?或是读本书,学习如何从头开始创建一个完整的应用程序?

用Anko和Kotlin实现Android上的对话框和警告提示(KAD 24)的更多相关文章

  1. 使用Kotlin进行Android开发

     Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者.Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发者使用而不断进化时,Java并 ...

  2. 在Android上运用Anko和Kotlin开发数据库:SQLite从来不是一件轻松的事(KAD25)

    作者:Antonio Leiva 时间:Mar 30, 2017 原文链接:https://antonioleiva.com/databases-anko-kotlin/ 事实告诉我们:在Androi ...

  3. 使用Kotlin&Anko, 扔掉XML开发Android应用

    尝鲜使用Kotlin写了一段时间Android.说大幅度的减少了Java代码一点不夸张.用Java的时候动不动就new一个OnClickListener()匿名类,动不动就类型转换的地方都可以省下很多 ...

  4. 用Kotlin开发Android应用(IV):定制视图和Android扩展

    原文标题:Kotlin for Android (IV): Custom Views and Android Extensions 原文链接:http://antonioleiva.com/kotli ...

  5. 即刻开始使用Kotlin开发Android的12个原因(KAD 30)

    作者:Antonio Leiva 时间:Jul, 11, 2017 原文链接:https://antonioleiva.com/reasons-kotlin-android/ 这组文章已到最后了,它们 ...

  6. 使用Kotlin开发Android应用(IV):自定义视图和Android扩展

    在读完扩展函数和默认值这篇文章之后,那么接下来要介绍什么呢?在本系列第一篇文章中我们说过,Kotlin使得Android开发更加简单,本文我们将进一步作介绍. 自定义视图 你应该还记得,在说到Kotl ...

  7. Kotlin与Android SDK 集成(KAD 05)

    作者:Antonio Leiva 时间:Dec 19, 2016 原文链接:https://antonioleiva.com/kotlin-integrations-android-sdk/ 使用Ko ...

  8. 用Kotlin开发Android应用(I):介绍

    关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...

  9. 初次尝试用Kotlin实现Android项目

    Kotlin: The Swift of Android 起这个文内标题的原因很简单,就是对Kotlin抱有希望--能使Android的开发更简洁.高效及安全.知道Kotlin是从简书的一篇短文,越来 ...

随机推荐

  1. C++实现的Buffer类

    写C#的同志一定觉得Byte []比C++的 BYTE * 加 Length的方式好的多.一来,只需要一个对象就可以是表示一段字节流,另一方面,由于C#的特性,不需要象C++那样还要记得删除指针.由于 ...

  2. MyEclipse 远程调试Tomcat

    当Web项目部署在服务器之后,当项目出现问题的时候就需要远程调试[远程调试的代码要与本地代码一致] 配置远程调试的具体步骤如下: 1.Linux 中配置tomcat在catalina.sh中添加如下C ...

  3. iOS7下Status Bar字体颜色修改

    原文来自这里:iOS7下Status Bar字体颜色修改. 旧项目在iOS7上遇到status bar字体颜色需要修改的问题,症状如下:导航栏设置为黑色后,iphone上status bar的字体颜色 ...

  4. Android软件开发之SharedPreferences

    SharedPreferences 一种轻量级的数据保存方式 以键值对的方式存储 用于存储小批量的数据   使用方法: SharedPreferences sp= getSharedPreferenc ...

  5. 将jquery.qqFace.js表情转换成微信的字符码

    jquery.qqFace.js使用方法 引用 <script src="~/Content/qqFace/js/jquery.qqFace.js?v=3"></ ...

  6. LightOJ 1118--Incredible Molecules(两圆相交)

    1118 - Incredible Molecules      PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Lim ...

  7. Linux基础命令之文件和目录操作(一)

    pwd print working directory的缩写,作用是显示当前工作目录的绝对路径,一般进行频繁切换路径时使用. -L 显示逻辑路径(或略软链接文件),不常用. -P 显示物理路径,不常用 ...

  8. Linux面试笔试题带答案【详解】

    一.填空题:1. 在Linux系统中,以 ,该文件属性是 目录.8. 前台起动的进程使用 Ctrl+c 终止.9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置.10. 网络管 ...

  9. 解决IDEA右键 new 没有新建class/Interface等等选项

    1.File->Project Structure 2.选择Modules-->右边Sources中选择所需目录 然后点击 Sources-->Apply-->OK 3.再在左 ...

  10. JavaScript脚本加载相关知识

    <script>标签的位置 HTML4规范允许<script>可以放在<head>或<body>中. 但是,放在<head>中会导致性能问题 ...