- alert ("我是Dialog"){
- yesButton { toast("yes")}
- noButton { toast("no")}
- }.show()
那么接下来,我们就经由过程代率攀来懂得Kotlin说话开辟Android的优势地点。
再也不消findViewById
做过Android开辟的人都知道,构造文件写的多了,findViewById也是一个很大年夜的工作量,并且还要先声明变量,在findViewById然后再强转成我们的控件,应用方法一般如下
确切是如许,应用注解后确切给我们少了一些工作量,不过这依然没有最简单化,最简单的就是我们可以直接给id为user的控件直接赋值,或许你会感到这有点弗成思议。不过Kotlin确切做到了。我们可以直接如许写
有时刻写的是不是想吐,可能有些人说如今不是有一些注解的看维如butterknife,当我们应用注解时可以不消findViewById了,应用方法如下
- @BindView(R.id.user)
- TextView username;
- username.setText("我是一个TextView");
- user.text="我是一个TextView"
看到这你是不是有一种相见恨晚的感到,太Tama的简洁了。user就是我们构造文件声明的id,.text就想当与setText()给,在Kotlin说话中,我们看不到了像Java中的set/get办法了。须要留意的是,当我们想如许应用的时刻(不消findViewById,直接应用xml控件我们须要在gradle参加apply plugin: ‘kotlin-android-extensions’),须要参加下面一句代码
- //activity_login就是我们的构造
- import kotlinx.android.synthetic.main.activity_login.*
Anko Layout
平日我们应用xml文件写我们的构造,然则他有一些缺点如不是类型安然,不是空安然,解析xml文件消费更多的CPU和电量等等。而Anko Layout可以应用DSL动态创建我们的UI,并且它比我们应用Java动态创建构造便利很多主如果更简洁,它和拥有xml创建构造的层级关系,能让我们更轻易浏览。
- verticalLayout {
- val textView=textView("我是一个TextView")
- val name = editText("EditText")
- button("Button") {
- onClick { toast("${name.text}!") }
- }
- }
我们在OnCreate办法中可以去掉落setContentView,然后参加膳绫擎代码就可以显示如下图的效不雅,即一个垂直的线性构造中,放了一个TextView,一个EditText,和一个Button。并且Button中有一个点击事宜,当点槐厩?EditText的内容
膳绫擎的代码是不是很简单易懂,当然,默认的控件并不克不及知足我们的需求,例如我们会更改字体的色彩及大年夜小,会设置宽度和高度,会设置margin,padding值,那么该若何实施呢,当然也很简单,因为它的逻辑和xml书写构造是一个套路。例如以下实现
我想我不须要解释膳绫擎的代码,你就应当看得出控件实施的效不雅。因为它的属性和我们在xml设置属性的名字对应的。
在膳绫擎创建UI过程中,我们直接把创建UI的代码写在onCreate办法中了,当然,还有一种写法。我们创建一个内部类实施AnkoComponent接口,并重写createView办法,该办法返回一个View,也就是我们创建的构造。修改如下
推荐阅读
【51CTO.com原创稿件】这几天勒索病毒实在火了一把。东芝存储企业级硬盘营销清晨长藤森将文师长教师提到,将来>>>详细阅读
地址:http://www.17bianji.com/lsqh/35346.html
1/2 1