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

Android MVI框架搭建与使用

Kotlin data class File from JSON,如图所示: 在出现弹窗复制通过网页请求得到JSON数据字符串,如图所示:   这里如果觉得看起来不舒服,点击 Format...这个故事也是听说,你可以自己去求证,下面继续。...作为网络接口请求地址头,然后构建了MoShi,通过MoShi去进行JSONKotlin数据类处理,之后就是构建Retrofit,将MoShi设置进去,最后就是通过Retrofit创建一个网络请求服务...initView()函数是控件一些配置,比如给RecyclerView添加布局管理器和设置适配器,给按钮添加点击事件,在点击时候发送意图,发送意图被MainViewModelmainIntentChannel...observeViewModel()函数是对状态收集,在状态为Loading,隐藏按钮,显示加载条,然后网络请求会有结果,如果是成功,则在UI上隐藏按钮和加载条,显示列表控件,并添加数据到适配器

3.1K40

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

现在由Kotlin实现循环视图适配器类,综合前面两小节提到优化技术,加上视图持有者自动重用,适配器代码又得到了进一步精简。...为方便理解循环适配器Kotlin编码,下面以微信公众号消息列表为例,给出对应消息列表Kotlin代码: //ViewHolder在构造时初始化布局控件对象 class RecyclerLinearAdapter...根据这种设计思路,提取出了循环视图基础适配器,它Kotlin代码如下所示: //循环视图基础适配器 abstract class RecyclerBaseAdapter<VH : RecyclerView.ViewHolder...这下不管是在Activity代码,还是在适配器代码,均可将控件名称拿来直接调用了。...; 2、列表项信息数据结构名称,RecyclerInfo; 3、对各种控件对象设置操作,ItemHolder类bind方法; 除了以上三个要素,RecyclerStaggeredAdapter

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

分享近百道JavaScript 基础面试题,帮助你巩固JavaScript 基础知识

何在 JavaScript 中将字符串换为小写? 你可以使用 toLowerCase() 方法将字符串换为小写。 34. JavaScript 闭包是什么,为什么有用?...如何在 JavaScript 中将字符串换为整数? 你可以使用 parseInt() 或 Number() 函数将字符串换为整数。 57....如何在 JavaScript 中将对象转换为 JSON 字符串? 可以使用 JSON.stringify() 方法将对象转换为 JSON 字符串。 67.解释JavaScript事件传播概念。...如何在 JavaScript 中将字符串换为日期对象? 可以使用 Date() 构造函数或 new Date() 方法将字符串换为日期对象。 72....可以使用 Moment.js 等库或使用日期对象方法( getFullYear()、getMonth()、getDate() 等)从特定格式字符串构造日期对象。 83.

17610

Android开发Kotlin扩展函数技巧!

Kotlin,扩展函数是一种非常有用功能,可以让我们向现有的类添加新功能,而无需修改类源代码。在本文中,我们将探讨Kotlin扩展函数原理和运用,以及如何在Android开发中使用它们。...扩展函数是Kotlin一种特殊函数,它允许我们向一个类添加新函数,而无需继承或修改这个类源代码。扩展函数语法非常简单,只需要在函数名前面加上类名,并用点号隔开即可。...例如,我们可以向KotlinString类添加一个新函数,用于反转字符串: fun String.reverse(): String { return this.reversed() }...: val str = "hello" val reversedStr = String.reverse(str) 在上面的代码,我们可以看到,编译器将reverse函数转换为了一个静态方法,并将字符串实例作为第一个参数传递进去...在函数体,我们调用了ViewGroupfindViewById方法,并将结果强制转换为T类型。

24220

实战 | 认识 RecyclerView

当我开始学习 RecyclerView 时候,发现对于复杂列表界面有很多资源可以参考,但是对于简单列表展现就鲜有可参考资源了。...在实现过程也会将 RecyclerView 每个部分揉碎了展现给大家,这样大家就可以在自己应用实现了。 RecyclerView 是 "何方神圣"?为什么选择它呢?...设置项目名称,并且选择 Kotlin 作为项目所用语言。 接下来在 app 级 build.gradle 文件里引入 最新版本 RecyclerView 依赖。...对于比较复杂应用来说,数据可能是来自数据库或者来自于网络,不过这里我们简单使用字符串资源文件作为应用数据源。 在 strings.xml 文件,创建一个字符串数组来存放花名称。 <!...布局 接下来,在 activity_main 布局文件中将 TextView 替换为 RecyclerView,并且将其 layoutManager 设置为 LinearLayoutManager。

1.1K30

关于Android架构,你是否还在生搬硬套?

知识储备:需掌握Java面向对象、六大设计原则,如果不理解也无妨,尽量将用到设计原则加以详细描述 目录 1. 模块化意义何在?...为什么建议使用 函数式编程 3.1 什么是 函数式编程? 3.2 Android视图开发可以借鉴函数式编程思想 1. 模块化意义何在?...显示是modeltitle,但后端调整后我们需要在model中加一个prefix字段,同时textView显示内容也要做一次字符串拼接。...现在比较流行UI框架Flutter、Compose、Vue其本质都是基于函数式编程实现数据驱动UI,它们共同目的都是为了解决数据,UI一致性问题。...所以我建议在Kotlin 碰到数据处理尽量使用链式高阶函数(RxJava、Kotlin Flow亦然)。

83510

【Android从零单排系列四十七】《Android自定义adapter实现方法》

适配器通常用于列表、网格及其他可滚动视图数据绑定。 适配器主要作用包括: 数据转换:适配器将原始数据源转换为可以在 UI 控件展示数据项。...RecyclerView.Adapter:RecyclerView 适配器,用于支持复杂列表和网格布局,提供更高级布局管理和动画支持。...三  自定义adapter步骤 创建适配器类:创建一个自定义适配器类,继承自适配器基类( BaseAdapter、RecyclerView.Adapter 等)。...将适配器对象绑定到对应 UI 控件上( ListView、RecyclerView 等),通过设置适配器来展示数据。...它接受一个字符串列表作为数据源,并将每个字符串数据项绑定到名为 item_textview TextView 控件上。

26910

安卓天气预报app(四)——搜索城市、完善页面

✅简易安卓天气app(一)——解析Json数据、数据类封装 ✅简易安卓天气app(二)——适配器、每小时数据展示 ✅简易安卓天气app(三)——城市管理、数据库操作 简易安卓天气app(四)—...数据解析封装好,就是设置适配器,既然用到RecyclerView展示城市,那么城市适配器就得写,毕竟封装好城市数据不是String数组,是一个集合,为了规范(凑复杂度)直接写适配器吧(List转成String...; 然后我们把这个List转成String数组,放在适配器ArrayAdapter; String[] cityArray = new String[mCityBeanList.size()];...,只要把此类已经封装好全部城市集合传进去就行了,前面文章已经讲述过RecyclerView用法,同时,也可以实现点击item跳转到主页获取天气操作,前面文章也已经提到,不想过多赘述了; 若是嫌弃城市列表太多...为了保证搜索框还有提示功能,重新定义actureCityBeanList,传入集合actureCityBeanList数组;; final JSONArray Data = new JSONArray

1.7K50

Google挖坑后人埋-ViewBinding(上)

Google这新技术迭代跟玩一样啊,有kotlin-android-extensions插件不用,就手写,哎,就是玩儿~ 其实,kotlin-android-extensions插件还是有很多问题...,它会在代码创建一个HashMap,用来存放所有的id和对应View缓存,如果缓存没有需要View,那么就通过findViewById去创建,否则就直接获取,这就是它原理。...,所以setContentView(R.layout.xxxx)就可以替换为: setContentView(binding.root) Fragment 在Fragment中使用ViewBinding...其实没什么区别,这是为了在Kotlin中将不可空类型置空一种妥协方式,同样代码逻辑,在Java,就会非常简单了。...向大家推荐下网站 https://xuyisheng.top/ 点击原文一键直达 专注 Android-Kotlin-Flutter 欢迎大家访问

2.1K20

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin

,不过就怕写了没有人看,因为在国内Kotlin是受众群体确实比较少,当然了也是有大方向在往这边推动,但是小公司依然不会去用Kotlin,如果你看不惯这个说法也不要告诉。...正文   当然还是新创建一个项目,名为MyBluetooth-Kotlin,为了区分之前写Java版项目。 ? 选择语言为Kotlin,然后点击Finish完成项目的创建。...没错,这就是Kotlin语言Android项目,和Java还是有区别的,建议了解了Kotlin语法再看文章会比较好,当然你也可以对照Android 蓝牙开发(扫描设备、绑定、解绑)Java版来看...:material:1.2.0' //RecyclerView最好适配器,让你适配器一目了然,告别代码冗余 implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper...所以在Kotlin想到了更简单办法,直接在MainActivity修改状态栏样式。

4.3K20

Android快速开发整理(库、插件、常用网站)

GsonFormat 快速将json字符串转换成一个Java Bean 快捷键Alt+S Android ButterKnife Zelezny 配合ButterKnife快速生成注解 光标放在布局文件...ID上(R.layut.activity_main),Ctrl+Shift+B Android Methods Count 可查看依赖库方法数 Lifecycle Sorter 对Activity...或者fragment生命周期方法进行先后排序 Ctrl + alt + K JsonOnlineViewer 直接在as请求接口,方便调试 genymotion 超快超好用android模拟器 LeakCanary...检测内存泄露 github:https://github.com/square/leakcanary Dart Dart开发插件 Flutter Flutter开发插件 Json To Kotlin...Class jsonkotlin bean对象 Android Drawable Preview 可对drawable及mipmap下资源文件预览 Rainbow Brackets 彩虹括号,代码区块高亮

1.3K20

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin

是受众群体确实比较少,当然了也是有大方向在往这边推动,但是小公司依然不会去用Kotlin,如果你看不惯这个说法也不要告诉。...正文   当然还是新创建一个项目,名为MyBluetooth-Kotlin,为了区分之前写Java版项目。...[在这里插入图片描述] 没错,这就是Kotlin语言Android项目,和Java还是有区别的,建议了解了Kotlin语法再看文章会比较好,当然你也可以对照Android 蓝牙开发(扫描设备、...:material:1.2.0' //RecyclerView最好适配器,让你适配器一目了然,告别代码冗余 implementation 'com.github.CymChad:...所以在Kotlin想到了更简单办法,直接在MainActivity修改状态栏样式。

3.9K10

Kotlin热身篇: 简介与基本用法

精彩内容不容错过~ 一. kotlin 简介 Kotlin 拥有强大生态,因为 Kotlin 是一门跑在 Java 虚拟机上函数式语言,完全符合 JVM 设计规范,: 类型擦除,装箱和拆箱等等...说完共同点我们再聊聊他们不同点吧~ 三. kotlin 和 java8 不同点 kotlin 和 java8 不同挺多,简单归纳了一下: Kotlin 可以用操作符简洁判空 Kotlin...: 作用是当数据非空时,直接返回数据,而当数据为空时,返回合并到数据。利用该运算符,可以很容易把可空类型转换为非空类型,详细代码如下: if(foo!...总结 本文先从 kotlin 概念带大家进入 kotlin 语言,然后说了一下 kotlin 和 java8 异同以及相互转换方式,最后对 Kotlin 基础语法进行一一阐述,: kotlin 方法和变量使用...,kotlin 字符串模板, lambada 表达式,以及各种表达式实际运用。

1.6K30

Kotlin学习日志(四)函数

1.2 输入参数格式 Kotlin函数写法与Java传统写法区别很大,刚从Java开发AndroidKotlin开发Android朋友会不适应,但是后面你就会明白Kotlin优势了,这也是Google...这一顿操作意义何在呢?不是说默认参数吗?请听我慢慢道来,Kotlin引入了默认参数概念,允许在定义函数时直接指定输入参数默认值。...:String{ var str:String = "$tag:" //遍历可变参数泛型变量,将其转换为字符串再拼接到一起 for...日期时间格式 格式说明 小写yyyy 表示4位年份数字,2010、2020等 大写MM 表示两位月份数字,01表示一月份,12表示12月份 小写dd 表示两位日期数字,09表示当月9号,26...表示当月26号 大写HH 表示24小时制两位小时数字,22表示晚上10点 小写hh 表示12小时制两位小时数字,06可同时表示早上6点与傍晚6点,容易产生歧义所以实际开发很少用 小写mm

1.8K10

Jetpack新成员,Paging3从吐槽到真香

虽然很多朋友都觉得文章简单易懂,但Paging 3复杂性在于它关联了太多其他知识,协程、Flow、MVVM、RecyclerView、DiffUtil等等,如果你不能将相关联这些知识都有所了解...如果你对于Kotlin还不太了解的话,可以去参考新书《第一行代码 Android 第3版》。...无法在这里展开解释Flow是什么,你可以简单将它理解成协程对标RxJava一项技术。...接下来定义RecyclerView适配器,但是注意,这个适配器也比较特殊,必须继承自PagingDataAdapter,代码如下所示: class RepoAdapter : PagingDataAdapter...第一点,我们使用Kotlin高阶函数来给重试按钮注册点击事件,这样当点击重试按钮时,构造函数传入函数类型参数就会被回调,我们待会将在那里加入重试逻辑。

2.4K20

Android Jetpack系列 之分页库Paging3(一)

前言 许久没有更新Jetpack系列文章了,本篇文章为大家分享分页库Paging3使用,如果你还没有看过Jetpack其他文章,可以移步至链接: Android JetPack系列文章 ,持续更新...为了能让自己更加快速学习,英语菜鸡最近一直在恶补英语,直接看原版官方文档学习会更快,皇天不负有心人,经过两个星期坚持,现在官方文档上10个单词已经认识两个了~ ?...通过上图我们也可以清晰看出来,Paging在仓库层、ViewModel和UI层都有具体表现,接下来我们通过一个示例来逐步讲解Paging是如何在项目架构工作。...,这里意思就是 我们传Int类型值(页码)得到返回数据信息DemoReqData对象。...这里需要提醒是如果你使用不是Kotlin 协程而是Java,则需要继承对应PagingSourceRxPagingSource或ListenableFuturePagingSource。

4K30

【翻译】Kotlin 1.1 新版本同样适合安卓开发者

更重要是,今天就要把这些都展示给您,让您知道在开发安卓程序过程是多么爽快。 类型别名:让你事件监听更具可读性 当然,类型别名是有很多用处。...举个例子,在文章前面解释了如何使用代理更新一个 RecyclerView 适配器,后面的代码是这样: var items: List by Delegates.observable...辛运是, Kotlin 团队开发极其迅速,已经有好些库把协程威力带到了安卓开发。...支持,你可以看一下这个库: kotlin-coroutines-retrofit by Andrey Mischenko 强烈建议你们不仅要会使用他们,还要去看看他们是如何实现。...这也是开源魅力所在! 其他一些对于安卓开发者来说很酷事情 在这个版本还有很多其他改进,但是想重点提出几个关于针对安卓开发功能。

1.1K60
领券