- 博客(14)
- 收藏
- 关注
原创 kotlin 学习 ( 二 )
kotlin类和对象类定义类的属性主构造器类和对象类定义Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。Kotlin 中使用关键字 class 声明类,后面紧跟类名:class Runoob { // 类名为 Runoob // 大括号内是类体构成}我们也可以定义一个空类:class Empty可以在类中定义成员函数:class Runoob() { fun foo() { print("Foo") } // 成员函数}类的属性
2020-12-29 09:10:23 150
原创 kotlin 学习 ( 一 )
Kotlin关键字与操作符kotlin基础语法可变长参数函数定义常量与变量NULL检查机制区间基本数据类型类型转换位操作符字符布尔数组字符串字符串模板基础语法函数定义使用关键字 fun,参数格式为:参数 : 类型例如:fun sum( a: Int, b: Int ): Int { // Int 参数,返回值 Int return a + b}表达式作为函数体,返回类型自动推断:fun sum(a: Int, b: Int) = a + b// public 方法则必须明确写
2020-12-28 15:08:22 532
原创 Android Studio 4.0 New Class 问题
AndroidStudio升级到4.0后, 新建类变成了下面这个样子, 并且默认还没有修饰符, 一堆大写的英文看的我一脸懵逼IMPORT BLOCK 说白了就是导包(谁家导包会手动写呀[捂脸])ISIBILITY 值为 PUBLIC或 PACKAGE_PRIVATE 或不填 分别对应public修饰符 private修饰符和没有修饰符 (我一般新建类都默认public修饰符, 默认没有修饰符感觉贼不方便)FINAL 就是类是否加final修饰SUPERCLASS 就是指定父类
2020-12-21 11:32:14 500
原创 Kotlin关键字与操作符
关键字名称说明as1.用于类型转换;2.为导入指定一个别名as?用于安全类型转换(它可以在失败时返回 null )fun声明一个函数in1.指定在 for 循环中迭代的对象;2.用作中缀操作符以检查一个值属于一个区间、 一个集合或者其他定义“contains”方法的实体;3.在 when 表达式中用于上述目的4.将一个类型参数标记为逆变!in1.用作中缀操作符以检查一个值不属于一个区间、 一个集合或者其他定义“contains”方法的实体;2.在 wh
2020-12-04 10:41:31 276
原创 Dart 语言简单使用
Dart语言简介变量声明1.var2.dynamic和Object3.final和const异步支持1.Future.then2.Future.catchError3.Future.whenComplete4.Future.wait5.Async/await6.Stream变量声明1.var类似于JavaScript中的var,它可以接收任何类型的变量,但最大的不同是Dart中var变量一旦赋值,类型便会确定,则不能再改变其类型,如:var t;t = "hi world";// 下面代码在da
2020-08-21 10:41:22 323
原创 Android Studio中使用Git——结合GitLab
目录简介准备Git安装Git配置信息Android Studio中配置GitGitLab账户配置SSH KeysAndroid Studio中使用Git配置忽略文件初始化本地Git仓库将本地Git仓库已与远程仓库进行关联提交文件将提交的文件推送到远程仓库从GitLab上clone项目分支管理创建分支推送分支到远程切换分支合并分支删除分支标签(Tag)管理创建标签推送标签到远程checkout某个标...
2019-07-02 10:16:43 450
原创 EventBus 使用详解
目录EventBus的概述EventBus的概述三要素Event 事件。它可以是任意类型。Subscriber事件订阅者。在EventBus3.0之前我们必须定义以onEvent开头的那几个方法,分别是onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,而在3.0之后事件处理的方法名可以随意取,不过需要加上注解@...
2019-06-26 21:05:52 295
原创 Rxjava观察者模式
观察者模式从定义可以看到,该模式必须包含两个角色:观察者和被观察对象(主题)。从代码实现的角度,我们又可以分为以下四种角色:抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。抽象观察者角色:为所有具体的观察者定义一个接口,在得到主题的通知时更新自己。具体主题角...
2019-05-28 19:18:45 673
原创 探秘Java中String、StringBuilder以及StringBuffer
1.String str=“hello” 和String str=new String(“hello”)的区别想必大家对上面2个语句都不陌生,在平时写代码的过程中也经常遇到,那么它们到底有什么区别和联系呢?下面先看几个例子:public static void main(String args[]) { String str1 = "Hello"; String...
2019-05-23 14:18:09 159
原创 Android实现从底部弹出Dialog(和PopWindow实现的效果一样)
布局文件:dialog_custom_layout.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi...
2019-05-22 13:46:24 588
原创 RxJava线程切换和背压策略
理解线程切换原理有什么意义?可以清楚的知道这个线程切换操作会影响到哪些代码的执行线程,不会影响到哪些代码的执行线程灵活运用线程切换来实现复杂的应用场景有利于在发生线程相关的问题时进行调试实现方式采用 RxJava内置的线程调度器( Scheduler ),即通过 功能性操作符subscribeOn() & observeOn()实现RxJava 遵循的是线程不变的原则在哪...
2019-05-21 15:00:50 901
原创 Rxjava操作符
目录一、RxJava操作符1、创建操作符 :创建被观察者(Observable)对象&发送事件1)Create() 操作符2)Just() 操作符3)fromIterable() 操作符4)timer()操作符5)fromArray() 操作符6)interval() 定时器7)intervalRange() 操作符8)Range() 操作符2、转换操作符:变换被观察者(Observabl...
2019-05-13 15:31:41 1728
原创 Android组件系列----Android Service组件深入解析
目录一、Service的基本概念(四大组件之一)二、定义(启动)一个Service1、如何定义(启动)一个Service:2、停止一个started服务有两种方法:3、onStartCommand方法的返回值:三、IntentService1、IntentService的引入:2、IntentService的作用:3、IntentService的用法:四、使用Bind Service完成Servi...
2019-05-07 15:09:59 251
原创 android 单元测试之 Robolectric
目录标题怎样使用指定RobolectricTestRunner为执行器什么是Shadow类@Config配置配置SDK版本号配置Application类指定Resource路径使用第三方Library Resources使用限定的资源文件系统属性配置驱动Activity生命周期追加模块自己定义Shadow类Shadow类中訪问原始类的field怎样在測试用例中让Shadow生效经常使用測试场景UI...
2019-05-06 14:21:42 1721
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人