用Anko和Kotlin实现Android上的对话框和警告提示(KAD 24)

作者:Antonio Leiva

时间:Mar 9, 2017

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

 

 

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

 

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

 

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

 

KotlinAnko做警告提示

 

通过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()

 

 

其结果如下:

 

 

 

结论

 

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

 

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

 

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

 

posted @ 2017-05-14 22:17 figozhg 阅读(...) 评论(...) 编辑 收藏