美文网首页
Anko - 系列 - Anko Commons

Anko - 系列 - Anko Commons

作者: ZHDelete | 来源:发表于2018-12-04 19:48 被阅读11次

翻译自: Anko Github 主页
Kotlin/anko(https://github.com/Kotlin/anko)


Anko Common

Anko Commons 是一个android开发者的工具箱,这个库里包含了许多基于Andoird SDK里原生方法封装的工具方法,包括但不限于如下:

1: Intent

对Intent 的封装,是在Anko 的 anko-commons模块里,如果想只依赖commons这部分功能,在module的build.gradle脚本中,加入如下依赖即可:

dependencies {
    implementation "org.jetbrains.anko:anko-commons:$anko_version"
}
  • 使用方法:
    传统的写法是:
val intent = Intent(this, SomeOtherActivity::class.java)
intent.putExtra("id", 5)
intent.setFlag(Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)

anko-common的写法:
如果需要设置要启动的Activity的FLAG,那么要如下写法:

startActivity(intentFor<SomeOtherActivity>("id" to 5).singleTop())

其中参数是:若干Pair对象,也即我们要传递的key-value数据

如果不需要设置Activity的启动Flag,则写法如下

startActivity<CommonsActivity>("id" to 5)

注意,此时的startActivity<T>不再是Activity类里的方法,而是anko里对Context的扩展方法了

如果要传递多对数据,写法如下:

startActivity<CommonsActivity>(
                "id" to 5,
                "city" to "Denpasar"
            )

以上内容封装在Intents.kt类里,包名是:org.jetbrains.anko,通过阅读代码,可以发现,内部实现,还说中规中矩的原生Android SDK相应的写法

此外,对于一些Android系统内常有Intent,anko也做了很好的封装:

目的 写法
拨打电话 makeCall(number),无需自己再拼接tel:num
发短信 sendSMS(number,[text]),不需要再:Uri.parse("sms:xxx")
浏览器打开 browse(url)
分享文字 share(text,[subject]
发邮件 email(email,[subject],[text])

上述方法中,可选参数军用[]括起来了,而且,如果Intent被发送成功,各个方法还会返回true表示结果

相关文章

网友评论

      本文标题:Anko - 系列 - Anko Commons

      本文链接:https://www.haomeiwen.com/subject/rrfafqtx.html