结构体定义 #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <stdio.h> #include <string.h> #include <Windows.h> //结构体是一
字符串 //使用字符数组存储字符串 void main() { //char str[] = {'c', 'h', 'i', 'n', 'a', '\0'}; //
动态分配类型 void main() { //stack overflow错误,栈溢出 //静态内存分配 int a[1024 * 1024 * 10]; //40M //栈内存 //C语言内存分配: //1.栈区(stack) //wind
指针与数组 //1.通过指针给数组赋值 void main() { int uids[5]; //高级写法 //int i = 0; //for (; i < 5; i++) { // uids[i] = i; //} //早些版本
指针类型 #include <stdio.h> #include <stdlib.h> //1.指针为什么要有类型? //指针有类型,地址没有类型 //地址只是开始的位置,类型读取到什么位置结束 void main() { int i = 100; //in
Hello World //引入头文件 //只有函数的声明,编译时会去找到函数的实现 #include <stdio.h> void main() { printf("hello world\n"); //system("mspaint&q
环境准备 升级Gradle插件至3.0.0及以上 dependencies { classpath 'com.android.tools.build:gradle:3.1.3' } Gradle版本升级到4.1及以上 gradle-plugin版本升级到3.0.0及以
CountDownTimer实现 Android提供一个CountdownTimer的类,采用Handler的方式实现,实现倒数计时的功能。 //第一个参数表示总时间,第二个参数表示间隔时间。单位ms,意思就是每隔100ms会回调一次方法onTick new CountDownTimer(1000
RxJava操作符 本例涉及的RxJava操作符: Merge — 将两个Observable发射的数据组合并成一个 结合使用 Retrofit转换器 GsonConverterFactory 和其 RxJava适配器 RxJavaCallAdapterFactory RxJava实现 添加依
RxBinding RxJava实现数据与视图的绑定使用到了RxBinding。RxBinding是一个开源项目,可以实现数据层与View层的绑定,当数据发生变化,View会自动更新UI。 RxBinding:https://github.com/JakeWharton/RxBinding 注意
TextWatcher监听的弊端 一般情况我们监听EditText控件,当值发生改变去请求搜索接口,如下: EditText searchText = (EditText) this.findViewById(R.id.search_text); searchText.addTextChanged
登录后再获取用户信息使用 FlatMap操作符,将用户请求参数转换为返回响应结果,再将响应结果转换为用户信息。 FlatMap 操作符 FlatMap 将一个发射数据的Observable变换为多个Observables,然后将它们发射的数据合并后放进一个单独的Observable。 FlatMa
Map 操作符是对序列的每一项都应用一个函数来变换Observable发射的数据序列。 Map 操作符对原始Observable发射的每一项数据应用一个你选择的函数,执行变换操作,然后返回一个发射这些结果的Observable。 Integer转换为String //Integer转换为Strin
RxJava操作符大全:http://reactivex.io/documentation/operators.html#alphabetical 常用操作符 创建操作 用于创建Observable的操作符 Create — 通过调用观察者的方法从头创建一个Observable Defer —
Scheduler线程类型 Schedulers.immediate() 直接在当前线程运行,相当于不指定线程。这是默认的 Scheduler。 Schedulers.newThread() 总是启用新线程,并在新线程执行操作。 Schedulers.io() I/O 操作(读写文件、读写数据库、