![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kotlin
雨痕消失
(*•̀ᴗ•́*)و ̑̑
展开
-
kotlin版本二叉树实现
数据结构,二叉树,kotlin版本原创 2022-10-20 00:26:36 · 687 阅读 · 0 评论 -
关于安卓弹窗,底部菜单等用动态添加布局的方式实现
说起实现一个弹窗的效果~你会想到什么实现方式呢?用PopupWindow 或AlertDialog 或在布局文件添加一个布局隐藏或者显示等等,实现的方式很多用popupWindow 和AlertDialog很方便,但代码不便于复用,扩展性不好,会出现一些输入焦点的问题。并且样式修改困难。如果直接写在布局文件里,用显示隐藏的方式,还是不便于代码复用。所以我想到了一种思路,动态的添加布局,并且把这整个布局显示隐藏或移除添加以及添加到activity的逻辑封装到一起作为基类。实现类只需要实现弹原创 2021-08-18 17:58:01 · 466 阅读 · 1 评论 -
模拟handler写的一个demo
Looper 类 模拟了loop方法,quit 方法用于退出模拟的死循环package com.yuixu.test2import android.util.Logclass MyLooper { var mThread:Thread companion object{ var threadLocal =ThreadLocal<MyLooper>() fun myLooper():MyLooper{ re原创 2021-06-27 18:48:57 · 184 阅读 · 0 评论 -
Handler 的loop()方法详解
上篇说了loop()方法并不是handler用来取出消息的,那么这篇分析一下loop()的源码看下它到底是干嘛的。个人理解大概是用来等待接收消息的,他会使线程进入休眠状态,等待被唤醒。这里关键的地方就是 MessageQueue的next方法。其中调用了nativePollOnce ,这个方法可以参看上篇提到的其他作者的native层源码分析(具体意思这个是Linux中的一种线程通讯机制,这个方法会让线程进入休眠状态)还有Looper中的Observer。looper中的Observer 是个抽原创 2021-06-27 15:54:17 · 908 阅读 · 0 评论 -
从源码详细分析Handler 原理
终于对handler 下手了????先来看看源代码,要看Handler源码还是要从构造方法入手。 @Deprecated public Handler(@Nullable Callback callback) { this(callback, false); } /** * Use the provided {@link Looper} instead of the default one. * * @param loope原创 2021-06-27 12:32:33 · 279 阅读 · 2 评论 -
kotlin版本的RecyclerView Adapter
abstract class BaseAdapter<T, B : ViewBinding?> : RecyclerView.Adapter<BaseAdapter.ViewHolder<B>> { lateinit var onItemClick: (view: View, pos:Int)->Unit protected var mDatas: ArrayList<T>? = null protected var c.原创 2021-05-31 16:42:00 · 813 阅读 · 0 评论 -
Kotlin 中let with run apply also 详解
1)let相关下面这个抽象类,使用了一个泛型 T,并且分别使用声明了let函数和 定义了一个抽象函数bb仔细观察。如果我们想对Info 做一些处理,可以分别用两种方式,一种是覆盖 bb 抽象方法,之后在bb 方法中写业务逻辑。另一种方式使用let关键字和lambda表达式。这个时候泛型R 就指代了 一个以T 为参数的代码段。而这个代码段并不需要提前写好,可以在调用的时候再去写,如方法cc中一样。可以说let关键字更灵活一些。实际的场景举例,如果我们想要复用某段代码,如果直接使用抽象方..原创 2021-05-06 22:52:47 · 525 阅读 · 5 评论 -
retrofit2网络请求的kotlin版本封装
从最早网络请求使用httpclient开始,到后面只用okhttp, 到使用retrofit2 ,(听闻retrofit2有kotlin版本,但是我去官网看似乎仍然是java 的)虽然网络框架还是基于java的。但是多数项目都开始使用kotlin编写。所以对自己之前的封装的网络框架也使用kotlin重构一下吧。其实还有一些变化,在测试版本的as中 ,权限请求的方法也过时了,结构变得更灵活,所以以后会把那个再重新封装一下。常规的app用的最多的感觉就是访问网络和权限请求了。好了就这些,这次的封装还原创 2021-04-01 14:26:52 · 1714 阅读 · 0 评论 -
关于kotlin泛型的使用
因为之前一直想用kotlin开发,正好现在要开一个新项目,所以准备用kotlin来做。把我之前用的mvvm框架的java代码自动转成kotlin以后,有很多地方都报了异常,主要都是泛型的部分,由于框架的基础部分应用了很多泛型,导致自动转了以后很多地方都不符合语法,所以努力的查阅了很多资料,终于修改成了kotlin的代码。网上很多关于kotlin的泛型的教程都讲的很复杂,形变,投影,协变,逆变,看了半天看的很迷惑。所以这块我把自己改好的源码贴出来,底下会放我整个框架的链接,kotlin的部分为了方便直接上原创 2020-10-20 17:58:44 · 616 阅读 · 1 评论