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日志并进行多维度分析。
相关文章
|
1月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
1月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
3月前
|
网络安全 数据安全/隐私保护 网络虚拟化
神州数码DCWS学习日志(二)
神州数码DCWS学习日志
24 1
|
3月前
|
Java Apache
学习Java中的日志系统设计与优化
学习Java中的日志系统设计与优化
|
3月前
|
Java Spring 容器
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
32 0
|
3月前
|
XML Java 程序员
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
47 0
|
3月前
|
XML Java 程序员
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
24 0
|
26天前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
|
8天前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
18天前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
50 9