用Kotlin中的Anko简化Android开发

Anko是一个方便你用Kotlin时简化Android开发的一个库。

分为4个部分:

  • Commons
  • Layouts
  • SQLite
  • Coroutines

今天就来了解下第一个常规部分的,首先在项目中添加必要的依赖

1
compile "org.jetbrains.anko:anko:$anko_version"

或者你可以针对第一个添加单独的依赖

1
compile "org.jetbrains.anko:anko-commons:$anko_version"

点击事件

java中的写法

1
2
3
4
5
6
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
...
}
});

Kotlin中的基本写法

1
2
3
4
5
button.setOnClickListener(object :View.OnClickListener{
override fun onClick(v: View?) {
...
}
})

但是可以转化为lambda表达

1
button.setOnClickListener { ... }

利用Anko可以达到

1
button.onClick { ... }

Intent

1
2
3
4
5
6
7
8
//java
Intent intent=new Intent(this,SecondActivity.class);
//kotlin
val intent=Intent(this,SecondActivity::class.java)
//下面没什么区别
intent.putExtra("id",666);
intent.putExtra("name","John");
startActivity(intent);

利用Anko

1
startActivity<SecondActivity>("id" to 666, "name" to "John")

当然,打开浏览器,分享,发邮件的intent也为我们准备好了

1
2
3
browse("https://makery.co")
share("share", "subject")
email("hello@makery.co", "Great app idea", "potato")

Toast

java/kotlin

1
Toast.makeText(this,"这是一个比较长的toast",Toast.LENGTH_SHORT).show();

anko

1
2
3
toast("Hi there!")
toast(R.string.message)
longToast("Wow, such a duration")

对话框

kotlin

1
2
3
4
5
6
val builder = AlertDialog.Builder(this)
builder.setTitle("Warning")
builder.setMessage("Kotlin is so fresh!")
builder.setPositiveButton("OK") { dialog, which -> toast("Yay!") }
builder.setNegativeButton("Cancel") { dialog, which -> toast("What?") }
builder.show()

anko

1
2
3
4
alert("Kotlin is so fresh!", "Warning") {
positiveButton("确定") { toast("点击了确定") }
negativeButton("取消") { toast("点击了取消") }
}.show()

参考