分类下相关文章
2024-05-21 · 阅读 1156 · 字数 255
需求 将一组 key / value 的数据,生成 json 序列化后的字符串,然后上传到服务器后台。 参考 kotlin 官方文档: https://book.kotlincn.net/text/serialization.html 大致逻辑就是,先定义一个 data class,然后执行序列化操作。 代码示例 import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.encodeToString @Serializable da ...
2023-08-04 · 阅读 1438 · 字数 370
在 Android App 中, 要对发送给蓝牙控制板的数据增加 BCC 校验位。此处使用 Kotlin 实现。 确认校验规则 这个取决于当前项目如何约定的校验规则,不具有普遍性。可忽略。 目前的规则是: 剔除头尾字节,及倒数第二个字节的校验位,然后对此范围的数据做 BCC 校验。 测试数据 使用收到的 BLE 数据包作为测试案例。 AB 00 06 A2 05 20 32 30 2E 37 31 AB BA 即: 00 06 A2 05 20 32 30 2E 37 31 对应的 BCC 校验位为: AB Kotlin 扩展 ByteArray 自动给一段 ByteArray 缀上 BC ...
2023-08-04 · 阅读 1744 · 字数 193
今天在用 Kotlin 写一段字节数据的 BCC 校验时提示错误信息。代码是: var data = byteArrayOf(0x00, 0x06, 0xA2) 报错信息: The integer literal does not conform to the expected type Byte Android Studio 中建议的写法是: 0xA2.toByte() 即 var data = byteArrayOf(0x00, 0x06, 0xA2.toByte()) 为何 0xA2 不在 Byte 的范围之内 Byte 的范围不是 0~255 么? 确实不是,byte 类型的 ...
2022-10-28 · 阅读 3534 · 字数 268
object a static instance of a class that there is only one of, otherwise known as a singleton 类似单例 singleton 整个 app 只有唯一一个实例 不需要创建 instance 实例,就能访问里面的属性、方法 第一次访问的时候,进行初始化,即 initialised lazily 例如: object Tool { fun checksum { // ... } } Tool.checksum() companion object compani ...
2021-09-15 · 阅读 7119 · 字数 200
在 Android Jetpack Compose 中使用 MaterialDatePicker 返回的日期为 Long 型时间戳。 我想将其转换为 LocalDate 类型。 datepicker 返回的数据类型 1630195200000 data class convertor 存入本地数据库的数据类型 1630195200 其对应的转换函数: @TypeConverter fun dateToTimestamp(date: LocalDate?): Long? { val zoneId: ZoneId = ZoneId.systemDefault() return date?.at ...
2021-02-07 · 阅读 7050 · 字数 274
使用 kotlin 定义了一个简单的 Room Entity 类 Todo,代码如下: import androidx.room.Entity import androidx.room.PrimaryKey @Entity(tableName = "todos") data class Todo( @PrimaryKey(autoGenerate = true) var id: Int, var title: String, var content: String, ) { override fun toString() = title } ...
2021-02-05 · 阅读 4549 · 字数 132
在参考 sunflower 源码时,发现其数据库名存储在一个公用文件中。 并且以全局变量 const val 类型定义,代码如下: const val DATABASE_NAME = "todo_database" 那么 const val 与 val 的区别是什么呢? const val 是编译时常量。即,必须在编译时赋值。 val 是运行时常量。可以不在编译时赋值,在运行时赋值也可以。 相关阅读 kotlin val 与 var 的区别 https://stackoverflow.com/questions/37595936/what-is-the-diff ...
2021-02-07 · 阅读 8085 · 字数 642
在看 Android Room 的示例代码时,看到一些 DAO 中的操作函数前有 suspend 关键字。例如: @Query("DELETE FROM word_table") suspend fun deleteAll() suspend 函数是 kotlin coroutine 引入的一个概念。 中文翻译 suspend, 中文意思是:挂起、推迟、悬浮。 suspend 是为解决什么问题而生 App 在发起网络请求拉取数据的同时,需要能保证用户在界面上的操作也能正常响应,界面可以刷新。 所以,就需要一套机制能保证耗时的 IO 操作,能与 UI 刷新操作同步执行。即, ...
2020-01-19 · 阅读 7367 · 字数 17
测试代码 val p = Pair(1, 2) p.first res3: kotlin.Int = 1 p.second res4: kotlin.Int = 2 ...
2020-01-13 · 阅读 10091 · 字数 161
为了给 EditText 控件设置初始值,用 kotlin 写了如下代码: this.input.text = "100" 没想到提示错误: 若强行编译,则会报错: Type mismatch: inferred type is String but Editable! was expected 可是我印象中 kotlin 是可以这样直接赋值的啊。。。 突然想到,莫非 EditText 不能这样搞,而 TextView 不可以。。。 测试了一下,确实是这样。改成 this.input.setText("100") 就可以了。 总结 TextV ...
2020-01-12 · 阅读 13076 · 字数 88
下面一段 Kotlin 代码在编译时报错: class ResultListAdapter(val resultList: mutableListOf<PercentPrice>): RecyclerView.Adapter<ResultListAdapter.ResultViewHolder>() { 报错信息为: Unresolved reference: mutableListOf 原来,mutableListOf 是一个函数方法,只能在类型 MutableList 初始化时使用。 所以,这里应该使用类 MutableList。 class R ...
2020-01-09 · 阅读 7012 · 字数 212
看 Android RecyclerView 官方文档时 https://developer.android.com/guide/topics/ui/layout/recyclerview 看到这样一段示例代码。里面有 apply 关键字,第一次见。 recyclerView = findViewById<RecyclerView>(R.id.my_recycler_view).apply { setHasFixedSize(true) layoutManager = viewManager adapter = viewAdapter } 猜测, apply 作用域内的代码 ...
2020-01-09 · 阅读 4234 · 字数 354
例如,我想查找 kotlin recyclerview 相关的使用文档。 看起来这是个幼稚的问题,谁还不会用 Google 啊,但是这个问题着实困扰了我一天。 如果使用关键词 “recyclerview kotlin” 进行搜索,会发现排名靠前的都是些三方网站的教程,内容质量及代码规范性都不高。 而直接搜素 “recyclerview”,则可以直接找的 Google Android 的官方开发文档,里面同时提供了 Kotlin 和 Java 的代码示例。介绍也更靠谱。 对应的文档地址如下: https://developer.android.com/guide/topics/ui/layo ...
2020-01-08 · 阅读 10390 · 字数 187
在查 Kotlin 的 RecyclerView 用法时,发现一段令人费解的代码: override fun getItemCount(): Int = list?.size!! size 后面的双叹号代表什么呢? 双感叹号可以看作是程序员在当前代码行发了一个毒誓: 如果叹号前的变量为 null,就让上天抛出 NPE,让我的 Android 应用崩溃。 这是一个多么脑残的设计。。。 我都想象不出任何使用双叹号的场景。。。 测试代码 >>> var s: String? = null >>> println(s) null >>> pr ...
2020-01-02 · 阅读 4531 · 字数 162
示例,使用 Kotlin 计算价格 100 分别涨跌幅 10% 后的分段价格。 示例代码 prices.kt data class PercentPrice(val percent: Int, val price: Double) fun main(args: Array<String>) { println("Start!") val price = 100.0 val prices = mutableListOf<PercentPrice>() for (i in 1..10 step 1) { ...
生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
---|---|
Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust |
成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |