Kotlin学习日志(一)TextView、Button、Toast的使用

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Kotlin学习日志(一)TextView、Button、Toast的使用

在Android Studio 中使用Kotlin编写TextView、Button、Toast


介绍的话我就不说了,可以看我的第一篇关于Kotlin的文章,讲了为什么要用Kotlin的原因,进入正题,我们现在已经重新创建了一个Kotlin的项目,我在activity_main.xml文件中放了一个id为tv_hello的TextView和一个id为btn_test的Button,

然后在MainActivity.kt中的头部导入

贴一下布局文件activity_main.xml的的代码


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/tv_hello"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
    <Button
        android:layout_marginTop="20dp"
        android:id="@+id/btn_test"
        android:text="测试"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>


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


这句话的意思是引进Kotlin的的控件变量自动映射功能,接下来只要是这个activity_main.xml文件中的控件,我们就都不需要在调用findViewById方法来获取对象了。如下图所示


20200211112025911.png


相信很容易看明白吧,布局文件中TextView的text属性是“Hello World!”,我们通过代码改成“你好 Kotlin”,按钮点击之后我们改变这个按钮的文本值为“您点了一下!”,当你点了以后就会变化,还有长按的代码也比较简单,我贴一下


//Button  长按事件
        btn_test.setOnLongClickListener { btn_test.text = "您长按了一会儿";true }


长按则需要加一个布尔类型的返回值,刚才我们只是改变按钮的文本,接下来我们来写点击之后弹出一个Toast消息,这个比较简单,代码如下


//Button  点击事件 Toast消息提示 短消息
        btn_test.setOnClickListener { toast("小提示:您点了一下") }


kotlin 的 toast方法默认的是短时显示消息,如果要长时显示消息呢?也很简单,代码如下:


//Button  点击事件 Toast消息提示  长消息
        btn_test.setOnClickListener { longToast("长提示:您点了一下") }


那如果我们要在点击的同时改变按钮的文本和弹出Toast消息呢?

代码如下

//Button  点击事件 改变按钮文本并弹出Toast消息
        btn_test.setOnClickListener { btn_test.text = "您点了一下!";toast("小提示:您点了一下")  }

该说的都说完了,我再介绍一个库:Anko库


简介:Anko是使用Kotlin语言编写的一个Android增强库,它用于简化Android开发时的Kotlin代码,让你的Kotlin代码更加的简洁易懂,就如同我们刚才用到的toast和longToast,这两个函数再Anko库中的原始定义是下面这样的:


toast

fun Context.toast(message: CharSequence) = Toast.makeText(this, message, Toast.LENGTH_SHORT).show()


longToast

ext.anko_version = '0.9'//指定Anko的版本


当然也可能有更高的版本,目前先用0.9,如下图所示


20200211115119989.png


同时,在模块的build.gradle,在dependencies节点中补充anko-common包如下代码:

implementation"org.jetbrains.anko:anko-common:$anko_version"


如下图所示


20200211115416115.png


OK,就是这样,我觉得你们也可以从后往前看,待续。。。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 Java 编译器
Kotlin学习教程(八)
Kotlin学习教程(八)
|
2月前
|
前端开发 Java API
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
本文是Vert.x学习系列的第五部分,讨论了回调函数的限制、Future和Promise在异步操作中的应用、响应式扩展以及Kotlin协程,并通过示例代码展示了如何在Vert.x中使用这些异步编程模式。
51 5
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
|
1月前
|
Java Kotlin
Kotlin学习教程(七)
《Kotlin学习教程(七)》主要介绍了Lambda表达式,这是一种匿名函数,广泛用于简化代码。文章通过与Java 8 Lambda表达式的对比,展示了Kotlin中Lambda的基本语法、参数声明、函数体定义及如何作为参数传递。示例包括按钮事件处理和字符串比较,突出了Lambda表达式的简洁性和实用性。
37 4
|
2月前
|
Java Maven Kotlin
vertx的学习总结7之用kotlin 与vertx搞一个简单的http
本文介绍了如何使用Kotlin和Vert.x创建一个简单的HTTP服务器,包括设置路由、处理GET和POST请求,以及如何使用HTML表单发送数据。
40 2
vertx的学习总结7之用kotlin 与vertx搞一个简单的http
|
2月前
|
Java Kotlin 索引
Kotlin学习教程(三)
Kotlin学习教程(三)
18 4
|
2月前
|
Java Kotlin
Kotlin学习教程(二)
Kotlin学习教程(二)
35 4
|
2月前
|
安全 Java 编译器
Kotlin学习教程(一)
Kotlin学习教程(一)
36 4
|
2月前
|
存储 Java API
Kotlin学习教程(六)
《Kotlin学习教程(六)》介绍了Kotlin中的注解、反射、扩展函数及属性等内容。注解用于添加元数据,反射支持运行时自省,扩展则允许为现有类添加新功能,无需修改原类。本文还详细解释了静态扩展的使用方法,展示了如何通过companion object定义静态部分,并对其进行扩展。
17 2
|
2月前
|
存储 设计模式 JSON
Kotlin学习教程(五)
《Kotlin学习教程(五)》介绍了Kotlin中的泛型、嵌套类、内部类、匿名内部类、枚举、密封类、异常处理、对象、单例、对象表达式、伴生对象、委托等高级特性。具体内容包括泛型的定义和类型擦除、嵌套类和内部类的区别、匿名内部类的创建、枚举类的使用、密封类的声明和用途、异常处理机制、对象和单例的实现、对象表达式的应用、伴生对象的作用以及类委托和属性委托的使用方法。通过这些内容,读者可以深入理解Kotlin的高级特性和设计模式。
20 1
|
2月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
51 3