kotlin
文章平均质量分 59
code作业本
这个作者很懒,什么都没留下…
展开
-
kotlin中sealed语句的使用
密封类是 Kotlin 中的一种特殊类别,它的主要作用是限制类的继承结构。密封类用于表示受限的类继承结构,即一个值只能有有限几种类型,而不能有任意类型。密封类通常用于表示一种有限集合的类型。这样的设计可以让你在处理不同的结果时更加清晰和安全。表达式包含了密封类的所有可能子类,不需要添加。分支,这使得代码更加直观和安全。原创 2023-11-28 11:09:05 · 1393 阅读 · 0 评论 -
Kotlin中with、let、run、apply、also的使用区别汇总
偷个懒,仅找了几个表格对别,方便以后查看使用区别函数名函数块内使用对象返回值是否扩展函数适用场景withthis函数块最后一行或return表达式的值否适用于调用同一个类多个方法letit函数块最后一行或return表达式的值是适用于对象统一处理不为空的情况runthis函数块最后一行或return表达式的值是适用with()、let()函数的任何场景applythis该对象是适用于run()函数的任何场景,通产可用来在初始化一原创 2022-03-07 17:59:35 · 783 阅读 · 0 评论 -
Kotlin中对象表达式、对象声明、伴生对象
对象表达式(object expression)**对象表达式:**在实现使用的地方立即执行**对象声明:**第一次访问的时候被初始化,延迟初始化。**伴生对象:**在相应的类被加载时初始化的,相当于java静态初始化kotlin的对象表达式是为了解决匿名内部类的一些缺陷而产生的匿名内部类是没有名字的类匿名内部类一定是继承了某个父类,或是实现了某个接口Java运行时会将该匿名内部类当做它所实现的接口或是所继承的父类来看待对象表达式的格式object [:若干个父类型,中间用逗号分隔原创 2021-04-30 09:41:08 · 248 阅读 · 2 评论 -
Kotlin中内部类与嵌套类的使用
嵌套类相当于java中的静态内部类(有static关键字修饰的内部类)//嵌套类class OutClass1{ private var nameStr:String = " print nameStr" class InnerClass{ fun innerMethod() = "inner method print" }}fun main() { //外部想调用InnerClass的方法,可以直接调用 var inner1:String原创 2021-04-28 13:05:21 · 1840 阅读 · 0 评论 -
Jetpack中BindingAdapter的使用简单记录
BindingAdapter的简单使用首先回顾一下kotlin中实现静态方法通过伴生对象实现这样当前类中所有的方法都可以直接类.方法名()调用class ClassName{ //包裹你要调取的方法 companion object { //带有参数及返回值的方法 fun staticFunName(context: Context): Int { } }}通过将class关键字修改为object原创 2021-04-26 17:18:38 · 470 阅读 · 0 评论 -
Android的Jetpack组件DataBinding中如何使用include标签
activity_main.xml文件<?xml version="1.0" encoding="utf-8"?><layout 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"> <.原创 2021-04-26 16:07:12 · 687 阅读 · 3 评论 -
Android中Jetpack组件DataBinding使用详解
1.DataBinding在xml文件中的使用首先打开dataBinding开关使用DataBinding首先在build.gradle文件中开启Databinding同时开启viewBinding,需要能自动生成xml的Viewbinding文件 android { dataBinding { enabled = true } //或者 buildFeatures {原创 2021-04-23 09:11:13 · 362 阅读 · 0 评论 -
Android中LiveData组件在ViewModel组件中的使用
LiveData的优势确保界面符合数据状态不会发生内存泄漏不会因Activity停止而导致崩溃不用手动处理生命周期数据始终保持最新状态适当的配置修改共享资源 //版本号根据实际情况添加 implementation "androidx.fragment:fragment-ktx:1.3.2" implementation 'androidx.activity:activity-ktx:1.3.0-alpha05'版本号参考:Activity:https://dev原创 2021-04-16 16:45:22 · 338 阅读 · 0 评论 -
Jetpack通过kotlin使用Lifecycle方式及注意点
Lifecycle使用Lifecycle与组件一些组件需要监听Activity生命周期,则在相应的方法添加注解进行监听 //文件1:被监听的组件中,class需要实现LifecycleObserver接口 @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) private fun onResumeEvent(){} //方法名称随意命名,注解要根据具体需求的回调进行声明 //文件2:Activity中对组件进行注册 lifecycle.原创 2021-04-14 18:05:24 · 954 阅读 · 0 评论 -
Kotlin与Java的相互调用
Kotlin调用javapublic class MyJavaClass{ public static MyJavaClass object = new MyJavaClass(); @Override public String toString(){ return "MyJavaClass{}"; }}kotlinfun main(args: Array<String>){ //需要加反引用符号,!左侧的按键原创 2021-04-11 01:30:54 · 128 阅读 · 0 评论 -
Android计算时间差
java try { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = df.parse("2018-01-01 12:10:10"); Date endTime = df.parse("2018-01-01 14:10:10"); long diff = startTime.get原创 2021-04-08 11:15:35 · 272 阅读 · 0 评论 -
Jetpack中的Navigation组件使用
Navigation组件使用1.通过Activity的xml布局文件中创建一个fragment <fragment android:id="@+id/my_nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="原创 2021-04-06 15:49:49 · 158 阅读 · 0 评论 -
Kotlin委托模式
Kotlin中委托相关解释代理模式与装饰器模式的实现装饰器模式的代码实现//创建一个接口public interface Shape { void draw();}//创建实现接口的实体类。public class Rectangle implements Shape { @Override public void draw() { System.out.println("Shape: Rectangle"); }}public class原创 2021-04-01 15:28:43 · 141 阅读 · 0 评论 -
java和kotlin泛型总结
泛型//此种写法不允许!!//不允许将子类直接赋值给它的父类//java不允许把一个子类的泛型对象,赋值给一个父类的泛型类型声明List<View> textViews = new ArrayList<>(TextView);由于上方在java中不允许,所以在java中使用通配符?的解决方案//可以通过?通配符实现上面的问题List<? extends View> textViews = new Arraylist<TextView>();原创 2020-09-29 11:18:05 · 557 阅读 · 0 评论