第一行代码-第三版:读书笔记
温故而知新
持续加油
这个作者很懒,什么都没留下…
展开
-
第一行代码 第三版 第8章 8.5 kotlin 课堂 :泛型和委托
第8章 Kotlin 课堂8.5 kotlin 课堂 :泛型和委托8.5.1 泛型的基本用法8.5.2 类委托和委托属性三级目录8.5 kotlin 课堂 :泛型和委托8.5.1 泛型的基本用法泛型 : 允许我们在不指定具体类型的情况下进行编程,可以是我们的代码拥有更好的拓展性。泛型 主要有两种定义方式: 定义泛型类 定义泛型方法; 语法结构是****class MyClass <...原创 2020-05-03 20:50:31 · 268 阅读 · 0 评论 -
第一行代码 第三版 第11章网络技术 11.6.1 Retrofit 应用 报错:android.system.ErrnoException: isConnected failed: ECONNRE
在学习第11章 11.6.1Retrofit用法,这节的时候发生的报错:书上关于这个地方并没有说。我搜索问题的关键语句是:java.net.ConnectException: Failed to connect to /127.0.0.1:80Caused by: java.net.ConnectException: failed to connect to /127.0.0.1 (port...原创 2020-04-29 15:18:50 · 1317 阅读 · 0 评论 -
第一行代码 第三版 第8章 ContentProvider 8.2 运行时权限
第8章 ContentProvider8.2 运行时权限8.2.1 Android 权限机制详解8.2.2 在程序运行时申请权限8.2 运行时权限Android6.0时引入的,为了更好地保护用户的安全和隐私。8.2.1 Android 权限机制详解Android中常用的权限分成了两类:普通权限和危险权限。(还有特殊权限,使用比较少)危险权限必须由用户手动授权才可以,因为危险权限可能会触及...原创 2020-04-27 21:59:07 · 401 阅读 · 0 评论 -
第一行代码 第三版 第11章网络技术 11.4 解析JSON格式数据 以及回调的实现
第11章网络技术11.4 解析JSON格式数据11.4.1 使用JSONObject14.4.2 使用GSON三级目录11.4 解析JSON格式数据准备数据:11.4.1 使用JSONObjectJSONObject这是官方提供的由于在服务器中定义的是一个JSON数组。将返回的数据传入一个JSONArray对象中;循坏遍历JSONArray对象,从中取出的每一个元素都是一个JSON...原创 2020-04-26 23:26:12 · 295 阅读 · 0 评论 -
第一行代码 第三版 第11章 网络技术 11.3解析XML格式
第11章 网络技术11.3 解析XML格式数据11.3.1 Pull 解析方式11.3.2 SAX解析方式11.3 解析XML格式数据11.3.1 Pull 解析方式创建一个XmlPullParserFactory的实例,借助这个实例得到XmlPullParser 对象;调用 XmlPullParser 对象的setInt()方法将服务器返回的XML数据设置进去,然后开始解析;通过 ge...原创 2020-04-25 23:52:51 · 552 阅读 · 0 评论 -
第一行代码 第三版 第11章 网络技术 11.1~11.2OkHttp
第11章 使用网络技术11.1 WebView的用法二级目录三级目录11.1 WebView的用法用于在应用程序中展示一些网页,借助WebView控件,我们可以在自己的应用程序中嵌入一个浏览器。 <WebView android:layout_width="match_parent" android:layout_height="match_par...原创 2020-04-25 16:06:49 · 912 阅读 · 0 评论 -
第一行代码 第三版 7.6.1简化Preferences中最后一种方法使用KTX拓展库时出现的问题
代码无法运行错误详情 :Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6 Please spcify proper ‘-jvm-target’ option解决办法:在app/build.gradle 中的andriod 闭包中加入下列代...原创 2020-04-24 23:16:20 · 253 阅读 · 0 评论 -
第一行代码 第三版 第七章 7.4 SQLite数据库
SQLite数据库SQLite创建数据库三级目录SQLiteSQLite是一款轻量级的关系型数据库,支持标准的SQL语法,还遵循了数据库的ACID事务。用于存储大量复杂的关系型数据创建数据库SQLiteOpneHelper类:可以非常简单的对数据库进行创建和升级。它是一个抽象类。如果我们要使用它,就需要创建一个自己的帮助类去继承它。必须重写类中的两个方法:onCreateView() ...原创 2020-04-24 10:45:16 · 308 阅读 · 0 评论 -
第一行代码 第三版 第七章 数据存储持久化技术 7.3SharedPreferences存储
7.3 SharedPreferences存储使用键值对的方式存储,SharedPreferences支持多种不同的数据类型存储。7.3.1 将数据存储到SharedPreferences中获取SharedPreferences对象的两种方法:Context类中的getSharedPreferences()方法。接受两个参数:第一个参数 :用于指定SharedPreferences文...原创 2020-04-23 23:10:40 · 198 阅读 · 0 评论 -
第一行代码 第三版 第七章 数据储存持久化技术 7.1~7.2文件存储
7.1 持久化技术的简介数据持久化 : 将那些内存中的瞬时数据保存在设备中,保证即使手机或计算机关机的情况下,这些数据仍然不会丢失。持久化技术 :可以让数据在瞬时状态和持久状态之间进行转换。7.2 文件存储它不对存储的内容进行任何格式化的处理。适合存储一些简单的文本数据或二进制数据。如果你想使用文件存储的方式保存一些较为复杂的结构化数据,就需要订一套自己的格式规范,方便之后将数据从文件中...原创 2020-04-23 21:30:28 · 180 阅读 · 0 评论 -
第一行代码 第三版 第6章 6.5Kotlin课堂 :高阶函数
6.5 高阶函数6.5.1 定义高阶函数高阶函与Lambda的关系密不可分。接受Lambda参数的函数可以称为具有函数式编程风格的API。如果要定义自己的函数式API,就需要借助于高阶函数来实现。什么是高阶函数:如果一个函数接受另一个函数作为参数,或者返回值类型是另一个函数。kotlin中的新类型–函数类型,函数类型的语法规则为:(String, Int) -> Unit-...原创 2020-04-23 19:20:28 · 266 阅读 · 0 评论 -
第一行代码 第三版 第6章 6.3发送自定义广播
6.3 发送自定义广播6.3.1 发送标准广播默认情况下,我们发出的自定义广播都是隐式广播。先创建一个BroadcastReceiver 用于接收此广播,在AndroidManifest.xml中修改,让这个BroadcastReceiver 接收我们发送的广播。发送自定义广播的逻辑: 1.构建一个Intent对象,并将要发送的广播的值传入,2.调用Intent的setPackage()...原创 2020-04-19 18:38:51 · 320 阅读 · 0 评论 -
第一行代码 第三版 第6章 广播机制 6.1-6.2
第6章 广播机制6.1 广播机制简介Android中的每一个应用程序都可以对自己感兴趣的广播进行注册。这些广播可能来自于系统的,也可能来自于其他的应用程序。广播的类型:标准广播:是一种完全异步执行的广播,广播发出后,所有的BroadcastReceiver 可以几乎同时收到这条广播的信息。效率比较高,但是也是无法截断的。有序广播:是一种同步执行的广播,同一时刻只能有一个Broadca...原创 2020-04-19 14:49:53 · 354 阅读 · 0 评论 -
第一行代码 第三版 5.6 kotlin课堂 :扩展函数和运算符重载
5.6 kotlin课堂 :扩展函数和运算符重载5.6.1扩展函数拓展函数 : 表示即使在不修改某个类的源代码的情况下,仍然可以打开这个类,向该类中添加新函数。拓展函数的语法结构:fun ClassName.methodName(param1 :Int,param2 :Int):Int{ return 0 }示例代码:/** * 将letterCount()方法定义成Strin...原创 2020-04-17 20:54:05 · 178 阅读 · 1 评论 -
第一行代码-第三版 第五章 Fragment
Fragment 用于兼顾手机平板5.1 Fragment是什么Fragment是一种可以嵌入在Activity当中的UI片段作用:让程序更加合理和充分地利用大屏幕的空间。5.2Fragment的使用方式先书写fragment的布局文件建立对应的类,并让他继承自Fragment(注意:此处需要选择AndroidX库中的Fragment)需要重写Fragment中的onCreateV...原创 2020-04-16 22:58:40 · 392 阅读 · 0 评论 -
第一行代码-第三版4.8 kotlin课堂:延迟初始化和密封类
4.8 kotlin课堂 :延迟初始化和密封类4.8.1 对变量延迟初始化要解决的问题:全局变量的判空,在确保不为空的情况下,kotlin仍然可能需要你对这个变量进行判空操作。解决问题的方法:对全局变量进行延迟初始化延迟初始化使用的关键字是lateinit只能用于var声明的值,毕竟是对变量进行延迟初始化。存在未初始化就直接使用的风险,这样的情况会抛出UninitializedProp...原创 2020-04-16 21:28:07 · 279 阅读 · 0 评论