是一个使开发Android应用更简单更快捷的库,Anko使你的代码简洁易懂, 使开发者不用再在意Android SDK对Java版本的限制(目前还不支持Java8 =。= ).

anko有很多模块。我们就选下面这一款集成看下

module:app -> build.gradle->dependencies

添加以下代码

implementation "org.jetbrains.anko:anko-sdk15:0.9.1"

同步代码后

布局

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

android:id="@+id/tv_hello"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:text="Hello World!"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="parent" />

package com.anguomob.demoforktanko

import android.os.Bundle

import android.widget.Toast

import androidx.appcompat.app.AppCompatActivity

import kotlinx.android.synthetic.main.activity_main.*

import org.jetbrains.anko.onClick

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

tv_hello.onClick { view->

Toast.makeText(view!!.context,tv_hello.text,Toast.LENGTH_LONG).show()

}

}

}

只简化了这个 onClick 有这个必要加一个依赖吗?

还可以简化事件传递

之前传递方法 MainActivity

package com.anguomob.demoforktanko

import android.content.Intent

import android.os.Bundle

import androidx.appcompat.app.AppCompatActivity

import kotlinx.android.synthetic.main.activity_main.*

import org.jetbrains.anko.onClick

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

tv_hello.onClick { view ->

val intent = Intent(this@MainActivity, TestActivity::class.java)

intent.putExtra("Key","From MainActivity")

startActivity(intent)

}

}

}

接受方 TestActivity

package com.anguomob.demoforktanko

import android.os.Bundle

import androidx.appcompat.app.AppCompatActivity

import kotlinx.android.synthetic.main.activity_test.*

class TestActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_test)

intent.extras?.get("Key").let{

tv_ta_hello.text= it.toString()

}

}

}

anko简化后 传递方法 MainActivity

package com.anguomob.demoforktanko

import android.content.Intent

import android.os.Bundle

import androidx.appcompat.app.AppCompatActivity

import kotlinx.android.synthetic.main.activity_main.*

import org.jetbrains.anko.onClick

import org.jetbrains.anko.startActivity

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

tv_hello.onClick { view ->

startActivity("Key" to "From mainActivity")

}

}

}

运行一下 效果不变

..新版本的依赖 不支持.onClik方法了。

implementation "org.jetbrains.anko:anko-sdk15:0.10.8"

anko有自己的dsl  可以自己定义布局

我们修改之前的 TestActivity .  删除布局 自定义布局

这有点像ios开发。as 上面也有布局转换成ak的插件 可以去了解下。搜索anko就可以搜到

package com.anguomob.demoforktanko

import android.os.Bundle

import android.view.Gravity

import androidx.appcompat.app.AppCompatActivity

import org.jetbrains.anko.matchParent

import org.jetbrains.anko.relativeLayout

import org.jetbrains.anko.textView

class TestActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

val text = intent.extras?.get("Key").toString()?:"没收到数据啊"

relativeLayout {

textView(text) {

}.lparams(width = matchParent, height = matchParent) {

gravity = Gravity.CENTER

}

}

}

}

MainActivity

package com.anguomob.demoforktanko

import android.os.Bundle

import androidx.appcompat.app.AppCompatActivity

import kotlinx.android.synthetic.main.activity_main.*

import org.jetbrains.anko.startActivity

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

tv_hello.setOnClickListener { view ->

startActivity("Key" to "From mainActivity")

}

}

}

kotlin android 镜像,【54】Kotlin android Anko 神兵利器相关推荐

  1. Android 镜像

    Android 镜像 文章目录 Android 镜像 镜像说明 调整分区大小 1. 分区 2. 块 3. 根文件系统 解压镜像 备注 镜像说明 序号 分区 镜像 是否必须 编译 说明 备注 1 boo ...

  2. Android开发:Kotlin下配置DataBinding

    近日,随着Google召开了Google I/O 2017,Kotlin大火一把.因为Google宣布Kotlin为First-class开发语言作 为一名Kotlin忠实粉丝,高兴地很呀.虽然短 时 ...

  3. 《Kotlin从零到精通Android开发》欧阳燊

    1.开发环境,2.数据类型,3.控制语句,4.函数运用,5.类和对象 目录 第一章 搭建Kotlin开发环境 1.5.1 Kotlin代码和Java代码PK 1.5.2 Anko库 1.5.3 Lam ...

  4. 《Kotlin从零到精通Android开发》欧阳燊(二)

    第六章 Kotlin使用简单控件 6.1使用按钮控件 按钮button 按钮事件三种Kotlin编码方式:匿名函数,内部类,接口实现 1.匿名函数方式 btn_click_anonymos.setOn ...

  5. Android:《Kotlin 从零到精通Android开发》读书笔记

    原文发布在我的公众号:CnPeng 所有文章将优先发布于公众号,随后才会更新简书. 前前后后整整四十天,终于利用非工作时间读完了 欧阳燊(shen)写的 <Kotlin 从零到精通Android ...

  6. 58APP引入Kotlin进行Android开发,kotlin高阶函数斐波那契

    kotlin代码可与java代码放到相同目录,但是放到一起回比较混乱,为了将kotlin与java代码隔离新建一个kotlin目录,并且sourceSets做以下修改 java.srcDirs = [ ...

  7. 给Android开发者的kotlin使用

    IO大会上说把Kotlin作为Android官方语言,虽然以前也听过,但是不了解,这不进来看看,尝试自己翻译一下,之前都是看别人的译文,直接看别人翻译过来的,可能可以节省时间,但是理解可能不够深入,加 ...

  8. 致Android开发者的Kotlin入门

    Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿Android的人,我们必须尽快了解和使用Kotlin语言. 不过Kotlin毕竟是语言级 ...

  9. Android第二课-----Kotlin入门

    文章目录 一.Kotlin的发展历程 二.Kotlin相比于Java的优势 三.Kotlin的工作原理 四.如何运行Kotlin代码 五.Kotlin语法 1.变量 2.函数 3.逻辑控制 3-1.i ...

最新文章

  1. 基于第四层交换技术的负载均衡
  2. 为什么选择数据分析师这个职业?
  3. 蚌埠计算机对口招学生谈谈,蚌埠市865人报名对口高考
  4. 从 Servlet 入手带你看架构和框架设计的套路
  5. html ajax提交表单实例,Ajax提交表单并接收json实例代码
  6. underscore 系列之防冲突与 Utility Functions
  7. 图像处理 基于Visual C++编程 学习笔记 (3)显示灰度图像和二值化图像
  8. Python build-in数据类型之字符串str (一)
  9. MATLAB绘制垂直正态分布密度曲线
  10. 高通msm8953平台射频调试
  11. 人生不怕晚,就看敢不敢|优锘科技 X《无尽攀登》专场见面会
  12. DeepFashion2: 一个针对衣服图片的检测、姿态估计、分割和重认证多用途基准
  13. WPS表格转换成office用什么软件
  14. mysql组合字段语句_mysql group_concat 使用 (按分组组合字段)
  15. 蓝桥杯单片机-DAC-用板载板载PCF8591芯片在D/A引脚上输出指定的电压
  16. C和python中%d %.2d %2d %02d的区别
  17. 通过示教器或ROS控制UR机械臂
  18. windows虚拟机与主机共享文件夹具体方法
  19. c语言中短整形字节,C语言中的整数(short,int,long)
  20. kali安装卡在最后一步_Kali Rolling安装之后的一些常用配置总结

热门文章

  1. QQ 被曝搜集浏览器历史记录;饿了么回应骑手自焚;原锤子团队被合并暂停手机研发;| 极客头条...
  2. PowerJob 应对庞大任务的锦囊妙计:MapReduce
  3. 对抗恶意程序的反虚拟化,百度安全提最新检测技术,具备三大特性
  4. Kafka 和 RocketMQ 底层存储之那些你不知道的事
  5. 10年资深面试官直言:80%人面试Java都会止步于此!
  6. 国外开发者怒怼:“GitHub 变得不再有趣了!”
  7. Python 炫技操作:花式导包的八种方法
  8. 来自一位程序员女友的内心独白
  9. 中国移动:部分 5G 手机可能有网连不上;iOS 13 出现严重漏洞;ReactOS 0.4.12发布 | 极客头条​...
  10. 吊打 IE、Firefox,谷歌 Chrome 十年封神记