8 独上西楼-

尚未进行身份认证

我要认证

纸上得来终觉浅,绝知此事要躬行

等级
TA的排名 9w+

Kotlin笔记

记录Kotlin 遇到的与Java 不一样的地方1. Kotlin 所有类和方法默认都是 "final"的, 但是Kotlin 是没有final 关键字的,对应是Java 中的"final" 关键字常量使用 const val 修饰

2020-09-23 09:56:02

模板模式学习笔记

以豆浆为例子, 制作黑豆豆浆/花生豆浆/纯豆浆。制作的过程或者说流程都固定在一个方法里。 子类只需要重写必要的方法(这里是添加调料)即可。1. 豆浆基类import android.util.Logabstract class SoyMilk { abstract var tag : String fun make() { select() if (needAddIngredient()) { add()

2020-09-22 17:35:06

组合模式学习笔记

学校包含若干个学院, 学院又包含若干个专业, 其中就是组合关系(树形结构)。直接上代码1. 抽象基类import java.lang.UnsupportedOperationExceptionabstract class AbstractOrganizationComponent { protected var name: String protected var description: String constructor(name: String, descr.

2020-09-16 17:04:58

Android Studio_aar包制作及使用方法

一、 aar 包打包方法1. 新建一个Module, 选择 Android Library你可以先随便创建一个工程,然后执行以下操作:路径: File -> New -> New Module -> 选择Android Library -> 输入lib 的名称, 如networklib-> Finish2. 在新建的包中,添加你的代码.如新建 NetworkManager.java, 例子很简单,该包模拟从网络 获取热门 消息,供客户端调用。pa...

2020-09-15 14:26:11

Jar/ Aar 笔记

1. Jar: JavaArchive(Java 归档)是一种软件包文件格式。通常用于聚合大量的Java类文件、相关的元数据文件到一个文件,以便开发Java平台应用软件或库百度百科:https://baike.baidu.com/item/JAR/919533?fr=aladdin实际上在Android 开发中,Jar 包中是仅包含class文件与清单文件 ,不包含资源文件以ZIP 格式构建,以.jar为文件扩展名。2. Aar: Android Archive (...

2020-09-13 16:01:52

Minimum supported Gradle version is 6.1.1. Current version is 5.6.4.

Android Studio 导入项目,Gradle 同步时,提示以下错误:Minimum supported Gradle version is 6.1.1. Current version is 5.6.4.Please fix the project's Gradle settings.Fix Gradle wrapper and re-import projectOpen Gradle wrapper propertiesGradle settings其实就是你导入的项目使用的A

2020-09-12 09:52:31

Json 使用笔记

在libs 加入gson-2.3.1

2020-09-01 17:44:46

Builder模式笔记

Builder模式类图如下:将复杂对象的构建过程 和 它的表示分离, 使得同样的构建过程可以创建不同的表示。

2020-08-03 11:12:57

设计模式类图

1. 装饰者模式2. 建造者模式2.1 Android AlertDialog(1) AlertDialog 内部静态类Builder : 创建AlertDialog 对象, 该对象是对AlertController 进行了封装。(2) AlertDialog 持有产品类AlertController, 该类是用于控件的最终显示, AlertController 是在Android 的内部实现,非SDK (com.android.internal.app.AlertController)

2020-07-30 16:02:46

Android Preference 笔记

需要从PreferenceScreen 中 删除某个Preference1 . 先获取PreferenceScreenPreferenceScreen ps = getPreferenceScreen();2. 获取要删除的PreferencePreference pf = findPreference(pfKey); // pfKey 为String类型3. 删除if (pf != null && ps != null) { ps.removePref.

2020-07-29 16:45:48

装饰者模式学习笔记1_咖啡

1.原理动态的将新功鲜附加到对象上,在对象功能扩展方面,它比继承更有弹性,符合开闭原则2. 需求例子星巴克咖啡订单需求:单品咖啡: 意大利咖啡(Espresso ) ShortBlack美式咖啡(LongBlack) 无糖咖啡(Decaf)调料:豆浆(Soy) 牛奶(Milk)点单可以是单品+调料组合,最后算价格扩展性好,方便维护3. 普通实现单品咖啡 + 调料 组合缺点:类可能是全排列的数量,出现类爆炸4. 改进实现在单品咖啡中包含各种调料的判断,在计算价格的时候,根据是

2020-07-26 15:34:44

RxJava笔记_2_转换

创建:https://blog.csdn.net/whjk20/article/details/1074686121. map //将被观察者发送的数据类型转变成其他的类型 private fun testMap(){ Log.d(TAG, "testMap - start") // map 里实现Function < Int, String >接口, 覆写了 fun apply(Integer integer) : String

2020-07-23 20:51:33

Kotlin_ViewPager的简单使用_3_添加自动重复播放

基于上篇(添加了页面指示器):https://blog.csdn.net/whjk20/article/details/107409638添加自动重复播放, 重复部分不再写 // 自动重复播放 private fun startAutoRepeatPlay() { // 忽略检查 @SuppressLint("HandlerLeak") // 匿名内部类 val handler = object: Handler...

2020-07-21 11:09:00

RxJava笔记_1_创建2

创建1参考:https://blog.csdn.net/whjk20/article/details/107468612链式调用创建 private fun testCreateChain() { Observable.create(object : ObservableOnSubscribe<Int> { override fun subscribe(emitter: ObservableEmitter<Int>) { .

2020-07-21 09:58:31

RxJava笔记_1_创建1

RxJava 三要素:1.Observer: 观察者2.Observable: 被观察者3.subscribe: 订阅目录1. 需要在build.gradle 添加reactivex的依赖:2. 创建被观察者3.创建观察者4.订阅5.输出:1. 需要在build.gradle 添加reactivex的依赖:implementation 'io.reactivex.rxjava2:rxjava:2.1.4'implementation 'io.reactivex

2020-07-20 17:46:34

Kotlin_String/ Array笔记

Kotlin String 可以使用正则表达式过滤内容(split), 并且转成Array (toTypedArray), 如下:val arrays = stringList.split(";".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()由Array 可以完成查找功能(Arrays.stream(XX).anyMatch),val found = Arrays.stream(arrays).anyMatch { t -.

2020-07-20 13:23:32

观察者模式笔记

观察者模式学习笔记,模拟微信公众号推送消息观察者:用户被观察者:微信公众号推送消息的内容可以是第三方服务商提供的类图如下,实现待续

2020-07-18 22:23:08

Kotlin_ViewPager的简单使用_2_2

基于上篇(添加了页面指示器):https://blog.csdn.net/whjk20/article/details/107338023指示器的代码抽离出来,通过自定义VIEW实现, 重复部分不再写1. 继承ConstraintLayout, 自定义指示器VIEWclass ViewPagerIndicator @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyle...

2020-07-17 15:35:53

Kotlin_ViewPager的简单使用_2

基于上篇的基本使用:https://blog.csdn.net/whjk20/article/details/107338023添加了页面指示器 (小圆点), 重复部分不再写目录1. ViewPager 布局下方添加小圆点作为指示器2. 创建指示器(小圆点),区分当前页和非当前页面(1)drawable.indicator_dot_on(2)drawable.indicator_dot_off3. 根据页面数量,创建指示器资源 (使用ImageView)4. 添加...

2020-07-17 14:15:45

Kotlin_ViewPager的简单使用

ViewPager的使用方法和RecyclerView (ListView) 的类似,对应PageAdapterRecyclerView 参考:https://blog.csdn.net/whjk20/article/details/106950422目录1. 布局文件使用ViewPager2. 创建ViewPager的条目(view_pager_item.xml)3. 定义条目的使用的数据:4. 创建适配器Adapter4.1 构造函数传递数据4.2isViewFrom..

2020-07-14 14:56:09

查看更多

勋章 我的勋章
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。