首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin入门(23)适配器的进阶表达

视图持有者的设计理念固然美好,却苦了Android开发者,每次由BaseAdapter派生新的适配器类,都必须手工处理视图持有者的相关逻辑,实在是个沉重的负担。...为方便理解循环适配器Kotlin编码,下面以微信的公众号消息列表为例,给出对应的消息列表Kotlin代码: //ViewHolder在构造时初始化布局中的控件对象 class RecyclerLinearAdapter...根据这种设计思路,提取出了循环视图基础适配器,它的Kotlin代码如下所示: //循环视图基础适配器 abstract class RecyclerBaseAdapter<VH : RecyclerView.ViewHolder...,其中第一行代码表示引用了Kotlin的扩展插件LayoutContainer,第二行代码与Activity的一样表示导入了指定布局文件里面所有控件对象: import kotlinx.android.extensions.LayoutContainer...import kotlinx.android.synthetic.main.item_recycler_staggered.* 另外,因为LayoutContainer是Kotlin针对性提供给Android

1.8K41
您找到你想要的搜索结果了吗?
是的
没有找到

Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin

低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版 前言 正文 一、配置项目 二、页面设计 三、扫描设备 ① 绑定视图 ② 检查Android版本 ③ 打开蓝牙 ④ 请求权限 ⑤ 扫描结果 ⑥ 设备适配器编写...⑦ 数据渲染 ⑧ 开始和停止扫描 四、连接和数据交互 ① 绑定视图 ② 初始化连接 ③ Ble回调 ④ 帮助类 ⑤ UI回调 五、源码 前言   写这篇文章是因为有读者想看看Kotlin中怎么操作低功耗蓝牙...,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...:indeterminate="true" android:visibility="invisible" /> vector> 下面写扫描到的列表适配器布局文件,在layout下新建一个item_bluetooth.xml

1.7K20

Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin

低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版 前言 正文 一、配置项目 二、页面设计 三、扫描设备 ① 绑定视图 ② 检查Android版本 ③ 打开蓝牙 ④ 请求权限 ⑤ 扫描结果 ⑥ 设备适配器编写...⑦ 数据渲染 ⑧ 开始和停止扫描 四、连接和数据交互 ① 绑定视图 ② 初始化连接 ③ Ble回调 ④ 帮助类 ⑤ UI回调 五、源码 前言   写这篇文章是因为有读者想看看Kotlin中怎么操作低功耗蓝牙...,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...:indeterminate="true" android:visibility="invisible" /> vector> 下面写扫描到的列表适配器布局文件,在layout下新建一个item_bluetooth.xml

2.7K31

Android Socket通讯

Socket通讯 前言 正文 一、创建项目 二、构建主页面布局 三、服务端 四、客户端 五、业务交互 ① 接口回调 ② 服务端和客户端切换 ③ 服务开启和关闭 ④ 服务连接和断开 ⑤ 发送消息 ⑥ 显示消息内容...一、创建项目 创建一个名为SocketDemo的项目,使用Kotlin。 因为涉及到网络通讯,所以需要在AndroidManifest.xml配置网络权限。...然后就是根据isServer去设置服务端布局和客户端布局的显示状态,同时还需要设置底部输入框的提示文字。...isSend) { showMsg("当前开启服务或连接服务");return@setOnClickListener }...① 列表适配器适配器的话要考虑服务端和客户端的关系,因此和传统的聊天是有区别的。

2.2K60

Android项目实战(三十四):蓝牙4.0 BLE 多设备连接

:design:25.3.1'   三、项目实现,布局文件     1、demo中一共用到两个activity 对应两个布局文件      先看扫描设备界面      包含:       1、一个列表,...显示 所有扫描到的设备的MAC地址,点击状态在 ''已选择' or '‘选择’ 之间改变,表明当前设备有没有加入到需要连接的设备集合中      2、扫描按钮      3、结束扫描按钮      4...包含:     1、选择需要连接的传感器设备 按钮     2、开始连接 按钮     3、数据展示 ?     布局文件代码: <?...convert(BaseViewHolder helper, String item) { helper.setText(R.id.txtMac,item); } }   适配器布局代码...<TextView android:id="@+id/txtState" android:text="选择" android:layout_width=

5K70

Android Socket通讯

Socket通讯 前言 正文 一、创建项目 二、构建主页面布局 三、服务端 四、客户端 五、业务交互 ① 接口回调 ② 服务端和客户端切换 ③ 服务开启和关闭 ④ 服务连接和断开 ⑤ 发送消息 ⑥ 显示消息内容...一、创建项目 创建一个名为SocketDemo的项目,使用Kotlin。 因为涉及到网络通讯,所以需要在AndroidManifest.xml配置网络权限。...然后就是根据isServer去设置服务端布局和客户端布局的显示状态,同时还需要设置底部输入框的提示文字。...isSend) { showMsg("当前开启服务或连接服务");return@setOnClickListener }...首先要改变一下UI,先把activity_main.xml中id为tv_info的控件控件删掉,换成RecyclerView,代码如下: <androidx.recyclerview.widget.RecyclerView

2.3K20

Android开发笔记(一百二十二)循环器视图RecyclerView

下面看看强悍的RecyclerView都提供了哪些常用方法: setAdapter : 设置列表项的适配器。有关适配器的详细说明见下一标题。...循环适配器 RecyclerView有专门的适配器类,即RecyclerView.Adapter。...在调用RecyclerView的setAdapter方法前,我们要先实现一个从RecyclerView.Adapter派生而来的数据适配器,用来定义列表项的布局与具体操作。...总的来说,RecyclerView.Adapter与我们之前经常遇到的BaseAdapter在处理流程上是基本一致的,当然它们之间也有不小的差异,下面是RecyclerView.Adapter和其他适配器的主要区别...: 1、自带ViewHolder及其重用功能,无需开发者手工重用ViewHolder; 2、自带列表项的点击和长按功能,需要开发者自己实现点击和长按事件的监听; 3、增加区分不同列表项的视图类型

2.4K20

android实现RecyclerView列表单选功能

本文实例为大家分享了android实现RecyclerView列表单选功能的具体代码,供大家参考,具体内容如下 实现思维 1.首先在一行的xml布局中添加一个选中效果的icon图片,选中的情况下INVISIBLE...或者GONE 都可以,推荐使用INVISIBLE它会占用布局位置但是不显示,这样可以避免布局中其他控件因为勾选布局的消失而轻微变动位置 2.将适配器类中的onCreateViewHolder方法重写添加按键监听...,onBindViewHolder方法中重写添加判断点击的位置(具体原理请查看下面贴的代码) PS: RecyclerView的实现全部方法就不贴出来了,本人的博客中有RecyclerView各种实现效果文章...1.首先在一行的xml布局中添加一个选中效果的icon图片,选中的情况下INVISIBLE或者GONE 都可以,推荐使用INVISIBLE它会占用布局位置但是不显示,这样可以避免布局中其他控件因为勾选布局的消失而轻微变动位置...; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View

73810

Google挖坑后人埋-ViewBinding(上)

相信大部分的Kotlin开发者都在使用它进行Android开发,而且在之前的Android Studio创建Android项目时,都会自动帮你依赖: apply plugin: 'kotlin-android-extensions...kotlin-android-extensions三宗罪 内存问题 通过反编译kotlin-android-extensions的代码,你就会发现,通过kotlin-android-extensions...资源ID重名 由于kotlin-android-extensions是通过view的id名直接引用的,所以多个布局间的同名id,就需要手动对import进行重命名处理,而且经常会引用错误的布局文件,导致运行崩溃...虽然这里生成了大量的XXXBinding文件,但是对编译速度的影响和生成Apk大小的影响几乎可以忽略: 使用的XXXBinding文件会在混淆时被删除 编译器生成Binding文件的速度极快,同时是增加更新...include来引入新的布局也是一个很常用的方式,kotlin-android-extensions由于底层使用的是运行时findViewById,所以不会存在什么问题,但是ViewBinding就不一样了

2.1K20
领券