- 博客(22)
- 收藏
- 关注
原创 Android 如何搭载一个合理的MVVM框架?
什么是VM,ViewModel(视图模型):负责将模型中的数据转换为视图可以直接使用的形式,并监听视图的变化来更新模型的数据,简单来说,就是数据的来源,持有所有供展示的数据。显然,是viewModel,通过数据绑定的方式,只改变数据,不改变model的方式,让逻辑代码变得清晰,优雅,解耦代码,显著提高代码的可读性和可维护性和可拓展性。什么是V,View(视图):负责展示数据给用户,并处理用户的输入,简单来说,就是直面展示的UI,组件。
2025-01-06 17:26:35
366
原创 解决:Retrofit请求返回: Expected a string but was BEGIN_OBJECT at line 1 column 4832 path $
最近在尝试使用玩Android开放平台的api做一个玩Android app,在我请求首页文章列表时卡住了两天,当我使用ResponseBody作为请求体的时候,正常返回数据,可当我使用javabean对象作为请求体的时候,直接就给我返回了 onFailure,就让我很疑惑。困扰我许久 java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 4832 path $.data.dat
2021-08-02 11:37:10
3010
原创 Kotlin—数据容器之集合
说明:各种集合对于解决问题都具有重要意义,并且经常用到。与数组不同的是可变集合的大小可以动态改变List:是一个有序集合,可通过索引(下标)访问元素。元素可以在list中多次出现丶元素可重复Set:是唯一元素集合。一组无重复的对象。一般来说set中元素的顺序并不重要丶无序集合Map:(字典)是一组键值对。键是唯一的,每个键都刚好映射到一个值,值可以重复集合创建的技巧集合可分为可变集合,显而易见,是指集合创建完成之后,可以对集合进行增删查改操作不可变集合,显而易见,是指集合创建完成
2021-07-25 11:30:57
439
2
原创 Kotlin—数据容器之数组
kotlin数组数组是一种初始化时指定容器大小,不可以动态调整其大小的容器。元素按顺序存储在一串连续的内存段上。Kotlin数组创建技巧1.使用arrayOf创建数组,必须指定数组的元素,可以是任意类型 //1.使用arrayOf创建数组,必须指定数组的元素,可以是任意类型 val arrayNumber= arrayOf(1,2,3,4) //集合中的元素可以是任意类型 //kotlin中的Any等价于Java中的Object 对象的意思 val
2021-07-24 13:30:48
1228
1
原创 Kotlin—基本数据类型
Kotlin的基本数据类型包括:Byte丶Short丶int丶Long丶Float丶Doubel所有未超出int最大值的整型值初始化的变量都默认为int类型,如果初始值超过了其最大值,那么推断为Long类型。在数字后面显式添加一个L表示这是一个Long类型 //编辑器会根据复制100,推断number的数据类型为int val number=100 //虽然没有明确赋值,但是编译器发现8000000000超过int最大值,所以升级为Long val bigNumber=80
2021-07-23 11:13:58
845
1
原创 初识—Kotlin
kotlin是什么?kotlin是一门用于现代多平台应用的静态编程语言,其中被广泛用于Android平台的开发,被称为Android世界的Swift。由JetBrains公司设计并开源,从16年发布1.0版本至今,使用的开发者数量快速增长。为什么要优先使用Kotlin进行Android开发?在2019的Google I/O大会上,Google宣布今后将优先采用Kotlin进行Android开发。Kotlin是一种新型的静态类型编程语言,不仅可以减少常见代码的错误,还可以轻松集成到现有应用中。
2021-07-23 10:59:14
331
1
原创 Android Retrofit嵌套请求-RxJava 3
说明:在实际开发中,可能会存在需要先请求A接口,再去请求B接口的情况。比如需要请求获取收藏文章列表,但是需要先登录拿到Cookie才能请求收藏文章列表接口,此时请求就有了先后顺序,使用RxJava 3进行嵌套请求注:本文使用wanandroid API开放平台https://www.wanandroid.com/blog/show/2里面的接口。添加RxJava 3和Rxandroid依赖implementation "com.squareup.retrofit2:adapter-rxj.
2021-07-21 10:55:10
863
1
原创 Android Retrofit的转换器
说明:在我们接到服务器响应后,目前无论是okHttp还是Retrofit都只能接收到String字符串类型的数据,在实际开发中,我们经常需要对字符串进行解析将其转变为一个Java Bean对象。比如服务器响应数据为JSON格式字符串,那么我们可以自己利用GSON库完成反序列化的操作。而Retrofit提供了多个转换器使得响应能够完成自动的数据转换。下文以json解析为例。注:本次使用的接口为wanandroid的登录接口进入wanandroid API开放平台https://www.wanandr.
2021-07-20 10:10:07
709
1
原创 Android okHttp-Post的提交数据方式
说明:学习记录HTTP content-type 对照表:https://www.runoob.com/http/http-content-type.htmlpost上传多个文件 //post上传多个文件 @Test public void uploadFileUnitTest() throws IOException { OkHttpClient okHttpClient = new OkHttpClient(); File file1
2021-07-17 10:19:07
514
原创 Android okhttp的同步与异步请求
说明:对okhttp简单使用布局文件activity.mian.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.andro
2021-07-16 11:24:06
375
原创 Android Generaed API的使用(Glide更简单的用法)
上文说了Glide的用法,这篇文章就教大家如何更简单得使用Glide,所以我们这里用到了Generaed API首先还是导入依赖 //Glide implementation 'com.github.bumptech.glide:glide:4.11.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'新建一个java类,只需继承自AppGlideModule和添加@GlideModule标注
2021-07-15 13:40:06
227
原创 Android Glide图片框架的使用
基本使用添加Glide依赖 //Glide implementation 'com.github.bumptech.glide:glide:4.11.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'注册权限(网络权限和访问SD卡的权限) <uses-permission android:name="android.permission.INTERNET"/>
2021-07-15 11:47:48
794
原创 Android 集成高德地图SDK
今天和大家分享一下如果在Android开发中引用高德地图的SDK以及实现定位,搜索,导航的功能=-=第一步:引入高德地图的SDK。首先,进入高德地图开发平台,鼠标移至头像处,点击我的应用,然后新建一个应用点击添加,添加keykey名称自己命名PackageName填写的是你项目的包名,在工程的bulid.gradle下的defaultConfig defaultConfig { applicationId "com.cdw.study8"
2021-07-14 17:59:14
2021
1
原创 Android ViewPager与Fragment联动(2)
新增底部导航栏的联动在drawable包下新建四个drawable resource file ,我这里分别是这些底部导航栏图片样式里面的代码第一行item是点击时更换的图片,有第二行是正常状态时的图片,我们底部导航栏是四个控件,那四个控件的四个文件都是这样设置,下面只放一个<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/r
2021-07-13 09:21:47
573
1
原创 Android ViewPager与Fragment联动(1)
由于我们使用的是ViewPager2,所以首先,我们引入ViewPager2依赖 implementation "androidx.viewpager2:viewpager2:1.0.0"布局文件很简单<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://s
2021-07-12 10:39:54
396
1
原创 Android 五种常用dialog的使用
常规dialogxml文件 <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt1" android:text="常规对话框" android:onClick="bt1">...
2021-06-03 15:35:25
2346
2
原创 Android ProgressBar(进度条)的简单使用
圆形进度条<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ProgressBar android:id="@+id/progress1" andro
2021-06-01 10:34:32
1527
1
原创 Android一键退出应用程序
思路:向集合中添加Activity 从集合中移除Activity //移除并关闭所有Activity创建一个ActivityCollector.Java(收集器类),
2021-05-31 17:49:42
549
原创 Android Intent的用法(详细)
显式Intentbutton1=findViewById(R.id.intentgo);button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MainActivity.this,IntentAvtivity.class); startActivity(inten
2021-05-30 10:31:26
3996
11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人