首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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...相信很容易看明白吧,布局文件中TextView的text属性是“Hello World!”,我们通过代码改成“你好 Kotlin”,按钮点击之后我们改变这个按钮的文本值为“您点了一下!”...= "您长按了一会儿";true } 长按则需要加一个布尔类型的返回值,刚才我们只是改变按钮的文本,接下来我们来写点击之后弹出一个Toast消息,这个比较简单,代码如下 //Button 点击事件 Toast...;toast("小提示:您点了一下") } 该说的都说完了,再介绍一个库:Anko库 简介:Anko是使用Kotlin语言编写的一个Android增强库,它用于简化Android开发时的Kotlin

1.3K20

Android动画入门教程之kotlin

前言 Google今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿Android的人,我们必须尽快了解和使用Kotlin语言。...注意:上面介绍补间动画的时候都有使用“对View进行操作”这样的描述,没错,补间动画是只能够作用在View上的。...这里举一个简单的例子,比如说我们有一个自定义的View,在这个View当中有一个Point对象用于管理坐标,然后onDraw()方法当中就是根据这个Point对象的坐标值来进行绘制的。...比如说,现在屏幕的左上角有一个按钮,然后我们通过补间动画将它移动到了屏幕的右下角,现在你可以去尝试点击一下这个按钮,点击事件是绝对不会触发的,因为实际上这个按钮还是停留在屏幕的左上角,只不过补间动画将这个按钮绘制到了屏幕的右下角而已...TypeEvaluator:TypeEvaluator的中文为类型估值算法,他的作用是根据当前属性改变的百分比来计算改变的属性值,系统预支的有针对整形属性(IntEvaluator)、针对浮点型(FloatEvaluator

89910
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin Flow响应式编程,StateFlow和SharedFlow

大家好,今天是Kotlin Flow响应式编程三部曲的最后一篇。 其实回想一下这个Kotlin Flow三部曲的初衷,主要还是因为自己想学这方面的知识。...虽然Kotlin已经学了很多年了,但是对于Flow却一直没怎么接触过。可能是因为工作当中一直用不上吧,现在工作的主语言依然还是Java。...而Kotlin Flow可预见的时间里,也上不太可能能在工作当中用得到,所以这个系列也就基本是属于我个人的学习笔记了。...也就是说,我们并没有很好地管理Flow的生命周期,它没有与Activity的生命周期同步,而是始终接收着Flow上游发送过来的数据。 那这个问题要怎么解决呢?...但是觉得这些配置会让SharedFlow更难理解,就不打算讲了。还是让它们之间的区别更纯粹一些,通过粘性和非粘性的需求来选择你所需要的那个版本即可。

37010

7. JetpackNote---基于Jetpack的学习笔记APP

为什么写JetpackNote? 说的简单些:就是为了记录自己的一个学习过程… 为什么要学习Jetpack呢?...4.3 LiveData LiveData模块,通过生命周期观察LiveData的值,并将它打印控制台中,点击 开始观察数据 按钮,通过演示生命周期函数,返回桌面或者进入后台,查看LiveData对象的值...Map转换则演示通过转换存储LiveData对象中的值,并向下传递转换的数据。...在此Demo中通过点击Map按钮增加UserId,驱动LiveDataViewModel中的userBean来改变,最后展示TextView中 4....4.4 ViewModel ViewModel模块,屏幕中央为一个计时器,通过使用ViewModel存储计时器的值,将屏幕方向发生改变,数据仍然存在不会销毁。

96430

Kotlin入门(20)几种常见的对话框

这个提醒对话框便是App开发常见的AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...因此,Anko库将其做了进一步的封装,给Context类添加了一个扩展函数,即“alert(消息内容, 消息标题) { 几个按钮及其点击事件 }”,简化的alert弹窗代码举例如下: alert...由于这里的Java代码逻辑实在拐弯抹角,又是数组适配器又是选择监听器的,因此Kotlin对这种玩意确实没有好办法。...既然此路不通,那就试试别的办法呗,前面提到Spinner其实由两部分组成,一部分是直接显示界面上的带箭头文本,另一部分是点击弹出的选择对话框,所以能不能绕过Spinner,运用所见即所得的理念,干脆把下拉框分离成两个控件好了...,这样只要给该文本视图添加点击事件,点击TextView弹出选择框,岂不是万事大吉?

1.6K10

Kotlin入门(20)几种常见的对话框

这个提醒对话框便是App开发常见的AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...因此,Anko库将其做了进一步的封装,给Context类添加了一个扩展函数,即“alert(消息内容, 消息标题) { 几个按钮及其点击事件 }”,简化的alert弹窗代码举例如下:     alert...由于这里的Java代码逻辑实在拐弯抹角,又是数组适配器又是选择监听器的,因此Kotlin对这种玩意确实没有好办法。...既然此路不通,那就试试别的办法呗,前面提到Spinner其实由两部分组成,一部分是直接显示界面上的带箭头文本,另一部分是点击弹出的选择对话框,所以能不能绕过Spinner,运用所见即所得的理念,干脆把下拉框分离成两个控件好了...,这样只要给该文本视图添加点击事件,点击TextView弹出选择框,岂不是万事大吉?

2.7K30

Android开发必备知识:为什么Kotlin值得一试

Kotlin 正是充分利用了这一点,它自己的标准库只是基于 Java 的语言框架做了许多扩展,你Kotlin 当中使用的集合框架仍然跟你Java当中一样。...简直烦的要死,而且有时候恰好这个类还没有 tag 这个成员,实践中我们通常会把当前类名作为 TAG,但每个类都要做这么个工作,是没有什么趣味可言(之前是用 LiveTemplates 帮我的,即便如此也没有那种流畅的感觉...当然有人会说我们应当有 proguard 做混淆,想说的是,proguard 自然是要用到的,不过那是 SDK 这个产品加工的下一个环节了,我们为什么不能在代码级别把这个事情做好呢?....* 导入这一句之后,我们就可以直接在代码中使用 start、textView,他们分别对应于 main.xml 中的 id 为 start 的按钮和 id 为 textViewTextView。...就个人而言,长期下去,Kotlin 很大可能会成为的主要语言,短期内则仍然采用温和的改革方式慢慢将Kotlin 渗透进来。

1.1K90

hello Kotlin

Kotlin 正是充分利用了这一点,它自己的标准库只是基于 Java 的语言框架做了许多扩展,你Kotlin 当中使用的集合框架仍然跟你Java当中一样。...简直烦的要死,而且有时候恰好这个类还没有 tag 这个成员,实践中我们通常会把当前类名作为 TAG,但每个类都要做这么个工作,是没有什么趣味可言(之前是用 LiveTemplates 帮我的,即便如此也没有那种流畅的感觉...当然有人会说我们应当有 proguard 做混淆,想说的是,proguard 自然是要用到的,不过那是 SDK 这个产品加工的下一个环节了,我们为什么不能在代码级别把这个事情做好呢?....* 导入这一句之后,我们就可以直接在代码中使用 start、textView,他们分别对应于 main.xml 中的 id 为 start 的按钮和 id 为 textViewTextView。...就个人而言,长期下去,Kotlin 很大可能会成为的主要语言,短期内则仍然采用温和的改革方式慢慢将Kotlin 渗透进来。

88650

Kotlin —— 这次入门就不用放弃了

它可以扩展函数:这意味着,就算我们没有权限去访问这个类中的代码,我们也可以扩展这个类的更多的特性。 它是函数式的:Kotlin是基于面向对象的语言。...仍然定义了一个overloaded方法,加上注解Kotlin会自动重载成n个方法(n表示参数个数) //Kotlin class Overloads { @JvmOverloads...username; username.setText("是一个TextView"); 确实是这样,使用注解确实给我们少了一些工作量,不过这依然没有最简单化,最简单的就是我们可以直接给id为user...列举了一些不喜欢的部分。 1. 没有命名空间 Kotlin 允许你文件中定义顶级的函数和属性,但是这会带来困扰——所有从 Kotlin 引用的顶级声明无法区分。...重写期间没有发生大的架构更改,因此重写之前和之后测试编译时间应该很好地了解Java和Kotlin之间的构建时间的差异。写了一个shell来重复执行gradle。所有测试连续进行10次。

1.6K30

声明式 UI?Android 官方怒推的 Jetpack Compose 到底是什么

这两年的时间 Android 团队干嘛?开发这个库,开发 Compose。一个 UI 框架而已,为什么要花两年来打造呢?...刚才说过一次,Compose 的渲染机制、布局机制、触摸机制全都是新写的,所以这个 Text() 的底层不是 TextView,也不是任何一个原生控件,而是直接调用了更下层的绘制 API,也就是 Canvas...那为什么左边就叫命令式,右边就叫声明式呢?xml 命令谁了?以及,右边这写法怎么就更优秀了?为什么要学一个看起来并没有什么本质区别的新写法来为难自己?...比如左边这个布局里的 TextView,如果它对应的数据改变了,要怎么把新的文字更新到它?很简单:findViewById()、setText() 对吧?...那么现在我们再往回拐:传统的 xml 写法和 Compose 的 Kotlin 写法,为什么一个是「命令式」,一个是「声明式」?这个问题其实本身就是错的。

2.2K30

Kotlin入门(2)让App开发变得更容易

,何必还要专门弄个Kotlin这个Kotlin相比Java到底有哪些好处呢?...首先在之前的hello模块包名上右击,依次选择弹出菜单“New”——“Kotlin Activity”(也可直接依次选择顶部菜单“File”——“New”——“Kotlin Activity”),右键菜单的截图如下所示...选择菜单打开Kotlin的Activity创建页面,单击“Next”按钮进入创建信息的填写页面,如下图所示: ?...比如现在有个名为tv_hello的TextView控件,准备代码中把tv_hello的显示文本改为“你好呀”,这用Java编码的话即是下面两行代码: TextView tv_hello =...(TextView) findViewById(R.id.tv_hello); tv_hello.setText("你好呀"); 修改文本这个功能,如果用Kotlin实现会是怎么样呢?

1.2K30

Kotlin 写 Android ,难道只有环境搭建这么简单?

Kotlin 团队早就帮我们把这个问题解决了,只要大家 gradle 配置中加入: apply plugin: 'kotlin-android' 就可以了,这与我们普通 Java 虚拟机的程序的插件不太一样...当然,如果你不怕麻烦,你也可以选择 TextView? ,然后给这个成员初始化为 null。...接着我们就用最基本的写法 findViewById、类型强转拿到这个 textView 的引用,然后 setText。 运行自然是没有问题的。 不过,不过!...id 来引用这个 view,超级爽~ 所以,你们不准备问下这是为什么吗?...小结 虽然是 HelloWorld,但要想搞清楚其中的所有秘密,并没有那么简单,很多时候,阅读 Kotlin 源码几乎成了唯一的途径。 谢谢大家的关注和支持~如果有什么问题可以联系~

8K00

Kotlin学习日志(六)控件使用

,那这个程序员也要开除,其次就是登录的时候与后台的数据库进行查询对比,假如没有这个手机号是不是还要先注册呢?...1.1 按钮Button Button是Android常用的控件之一,在前面的文章就提到过Button Kotlin学习日志(一)TextView、Button、Toast的使用 我们看一下使用的代码...只不过由于多数情况用不到视图对象,因此Kotlin中把冗余的视图入参给省略了,但是为了弄清楚按钮事件的来龙去脉,还是有必要观察一下它的本来面貌,接下来依次介绍按钮事件的三种Kotlin编码方式:匿名函数...1.3 单选按钮RadioButton 单选按钮要在一组按钮选择其中一项,并且不能多选,这要求有个容器确定这组按钮的范围,这个容器便是单选组RadioGroup,单选组RadioGroup实质上是一个布局...1.5 文本视图TextView没有人觉得TextView很简单呢?但实际并不简单,比如常见的文字跑马灯效果,一行文本的内容太多,导致无法完全显示,但也不想分行显示,于是就有这个跑马灯效果了。

1.7K30

要再见了吗,Kotlin Android Extension

说实话,直接废弃,还是有些意外的。毕竟这个插件早期为 Kotlin 攻城略地快速吸引 Android 开发者立下了汗马功劳,多年来虽然几乎没有功能更新,但直到现在仍然能够胜任绝大多数场景。...这里如果 textView 仍然可以访问,它不过是修改了一下文字而已,不会有其他副作用,但恰恰因为 KAE 这里严格的遵守了生命周期的变化清空了缓存,却又没有办法阻止开发者继续访问这个合成属性而导致空指针...Kotlin 一向追求代码的安全性,而且希望在编译时就把代码运行时可能产生的问题尽可能地暴露出来。很多场景下 Kotlin 确实做得很好,然而 KAE 并没有做到这一点。...不,降低标准的事儿我们是绝不会做的,Kotlin 官方这么多年都没有解决这个问题,快出来挨打 (╬ ̄皿 ̄)=○#( ̄#)3 ̄) 。...看到废弃 KAE 的讨论中,大家还是觉得废弃有些难以理解,毕竟之前你也没怎么管这个插件啊,这么多年了除了加了个 Parcelize 的功能以外,也没怎么着啊。

1.6K40

​使用Kotlin和Android Studio开发Android应用的详细教程

安装完成,打开Android Studio,确保SDK和其他必要的组件已成功安装。创建或导入一个新的Android项目。步骤2:创建新的Android项目打开Android Studio。...选择“Start a new Android Studio project”。项目模板中选择“Empty Activity”。点击“Next”并填写项目的名称、包名等信息。...选择所需的语言,确保选择Kotlin。点击“Finish”完成项目的创建。步骤3:设计应用界面res/layout目录下找到activity_main.xml文件,这是应用的主界面布局文件。...该文件中,你可以编写与应用逻辑相关的Kotlin代码。...正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

58910

《Kotin 极简教程》第13章 使用 Kotlin 和 Anko 的Android 开发

' } } 刚添加完毕,src/main/kotlin没有变成源码目录的蓝色,这个时候点击下图右上角的 Sync Now : ?...这个插件是建立ButterKnife 7的基础上的。 下面我们配置一下 Kotlin 中使用 Butter Knife 的依赖库 KotterKnife。...) 这样的代码看起来不是那么的优雅,还没有 Java 中直接使用注解来的简单好看。...) lateinit var todoContent: TextView 其中,lateinit 修饰符允许声明非空类型,并在对象创建(构造函数调用后)初始化。...我们可以看下按钮控件定义的地方。按钮有一个点击监听函数是定义视图定义文件里面的。定义按钮之前,有两个参数 title 和 content 的方法 createTodoFrom 已经被调用了。

3.4K30

Android Studio中使用Kotlin

Android Studio中使用KotlinKotlin学习想要深入的可以看以下的文章,也在学习中,多多交流沟通。...Kotlin学习日志(一)TextView、Button、Toast的使用 Kotlin学习日志(二)数据类型 Kotlin学习日志(三)控制语句 Kotlin学习日志(四)函数 Kotlin学习日志...(五)类与对象 首先要说明为什么要学习Kotlin,因为以后可能Java将会闭源,安卓团队谷歌 I/O 2017 大会上宣布 Kotlin 成为官方头等支持语言。...里面句尾可以不用加分号,这个Java里面是不行的)现在我们打开activity_main.xml文件,在里面放一个TextView并且给一个ID 代码如下: <?...,),改变它的值, 代码如下: tv_tip.text = "Hello Money!"

1.3K10

一次使用Kotlin实现酷炫多选操作的尝试

应用了一个筛选条件之后,列表的结构可能会发生改变,选中的item也许根本就不会显示。Vitaly决定使用他自己的多选概念设计(最早发布Dribbble)来解决这个问题。...那时明白了必须千方百计把Vitaly的多选概念设计实现出来;所以我几乎立即就开始了编写这个控件的工作。现在让我们来看看这个安卓的多选动画是如何诞生的。 ?...未被选择的item左边的列表。选中的item右边的列表。...(position) 技术栈 我们选择Kotlin语言来做这个工作。...这里是实现这个库的过程中,Kotlin的这些特性给我带来了方便: 1.扩展函数 Kotlin的扩展函数功能使得我们可以为现有的类添加新的函数,而不用修改原来的类。 就拿安卓的View来说。

1.2K20
领券