时间: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()
这块代码的结果是这样的:
你还可以用positiveButton
、negativeButton
和neutralButton
方法定制一些动作:
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处理数据库。