- 博客(19)
- 收藏
- 关注
原创 viewmodel创建及使用分析
可以看到viewModels是ComponentActivity的一个扩展函数,参数需要传factoryProducer,factoryProducer就是前面我们提到过的ViewModelProvider的内部的一个factory类,用来创建viewModel的,所以我们传入TestViewModel.provideFactory。get方法通过内部的store传入类名来获取view model,那么store是从哪里来的呢?接下来在MainActivity里面就可以正常使用这个viewmodel了。
2024-07-11 16:05:28 514
原创 RecyclerView数据错乱——EditText
项目场景:最近遇到的一个有意思的bug:进入页面有一个添加按钮,然后点击添加按钮recyclerview就会多一个item,item里面包含一个可以编辑的EditText问题描述: 在当前页面添加第三个item时,第一个和第二个item里面的EditText里面的数据都显示了刚刚第二个的数据,也就是数据开始错乱了解决方案:经过研究发现是Recyclerview里面的EditText设置了TextChangedListener的原因,应该在editText获取焦点时添加监听,但是在移除焦点时
2021-07-19 18:47:37 380
原创 @BindingAdapter使用小结
1.BindingAdapter的原理 一般我们在布局文件里用到的控件的各种属性,在源码里面都会有它对应的set和get方法,并且也会定义好需要的参数类型,这样我们一旦设置好相应的属性之后代码就自动去匹配对应的set和get方法进行属性设置,而我们有时候也会用到源码里没有定义好的属性,这样方便布局展示,这样就可以用BindingAdapter来解决这个问题。它的作用就是可以让我们自己定义想要用到的属性,然后给这个属性设置set方法设置到页面中显示2.BindingAdapter使用
2021-04-22 19:55:51 3008
原创 recyclerview崩溃分析 indesOutOfBoundsException:Inconsistency detected
recyclerview崩溃分析indesOutOfBoundsException:Inconsistency detected 崩溃操作描述部分代码片段正确写法崩溃操作描述首先对我的崩溃进行一个详细的操作描述:假如工程中有一个需要使用recyclerview展示的页面,进入页面上拉加载两页之后再下拉到最顶端下拉刷新,崩溃。部分代码片段if(refresh){ items.clear()}else{ pageId++}it.hot?.let { it -> items.
2021-04-19 14:18:57 1784
原创 对于安卓开发中activity的四种启动模式的简单解析
对于安卓开发中activity的四种启动模式的简单解析为什么使用启动模式开始使用启动模式四种启动模式介绍四种启动模式使用场景为什么使用启动模式 在我们安卓开发过程中大家一定遇到过各种小问题,让人摸不着头脑。比如在我们编写好了登陆页面之后,模拟登陆,在网速比较慢时就会着急多点几次登陆按钮,之后进入主页面之后就会发现按手机的返回键时会返回好几个主页面,这就是我们在点击登陆时创建了太多的主页面的实例导致的小问题,但这种问题修改一下主页面的启动模式就可以很好的解决。开始使用启动模式 有过android
2020-06-11 10:28:57 359
原创 更新android studio后导入旧版本的项目方法
android studio版本从2.1.1换成了3.2.0的,所以之前的项目都要重新导入一遍。导入过程中遇到了很多问题,在这里记录一下导入的基本过程。1、首先在更新之后的android studio 里面新建一个项目,新建项目方法如下图:2、打开想要导入的项目文件夹和刚刚新建的项目的文件夹(其中intelliGent_Medical是将要导入的项目,新建文件夹是新建的项目,后来改...
2019-05-13 22:06:12 13568 4
原创 android 单例设计模式getIntance
一、设计模式的含义设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。二、单例模式单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例,即一个类只有一个对象实例。三、我...
2019-04-27 21:20:52 290
原创 Install Failed. Please check your network connection and try again.you may creating your project.
前段时间安卓方面遇到了瓶颈,就搁置了一段时间在忙着其他事情。这两天突然又来了兴致,翻到了一个特别好的源码,但是在导入到我的android studio里面的时候出现了一点问题,可能是版本的问题。错误详情如下:这种错误网上解决方法很多,但是可能错误不太一样吧,有的对于我的错误就不太适用。下面我就把我的解决方法粘贴出来供大家参考:①先把工程调节到android格式:②展开菜单最...
2018-10-12 19:49:52 4952
原创 Genymotion 安装后出现的错误及解决方法
上篇博客介绍了如何安装Genymotion,由于篇幅问题还没有写完,接着就在这里继续上篇的内容吧。有很多人安装好了Genymotion虚拟机之后都会出现下图所示这种问题,包括有时候很久没用之后再打开就会出现这种错误。这个错误原因很简单,就是你的VirtualBox安装有问题,要解决的话可以有两种方法:①把原来的VirtualBox卸载重新安装,下载地址:https://www.vi...
2018-08-19 10:36:46 6164 2
原创 Genymotion 超详细安装教程图解(从注册到安装完成)
前两天在一个新的电脑上安装了android studio3.0 ,搞了半天写了一个简单的demo,结果想到新的电脑还没有安装虚拟机。就自己琢磨着又安装了一个Genymotion虚拟机,这款虚拟机安装挺简单的,用起来也比较方便。但是要说电脑上安装虚拟机之后还想要不卡的话应该是不可能吧,就算android studio自带的虚拟机都会比较卡。而只有英特尔的才可以安装android studio 自带的...
2018-08-19 10:17:40 40385 10
原创 android studio 的自动添加依赖过程简介(适用于android studio 任何版本)
早就听说android studio 升级到3.0版本后有许多新变化,不甘落后的我也下载了最新版本进行试用。结果刚开始进行添加依赖就遇到了点变化,不过这种问题还是很好解决的。问题过程如下:用惯了旧版本,习惯性的添加依赖就是直接在build.gradle里面直接添加一下点击上面出现的sync now就行了,但是新版本的依赖开头不一样了。如图:①老版本的添加依赖写法②新版本的添加依赖写...
2018-08-16 21:44:46 3049
原创 android 时间选择器demo
这几天写了一个类似日程的项目,看到小米的日程里面的时间选择器挺好看的,想要简单模仿一下。奈何能力有限,没有写成想象中那么完美,但是还好没让自己太失望,做成了一个还算能用的时间选择器。一、下面就是我做的时间选择器的相关界面,这个时间选择器实现起来是很简单的:二、会用到的layout和style1、style里面的代码:(先打开下图文件,再把代码复制到里面) <!...
2018-08-16 20:36:27 1684
原创 利用Intent在活动、碎片与活动间传递简单的数据
利用intent在活动和碎片与活动之间传递数据是比较简单的,intent方法提供了许多putExtra方法的重载可供我们的各种需求。intent可以把一些数据暂存,当跳转到另一个页面之后数据也会随着跳转到相应的页面,这样就可以在之后的页面对数据进行处理.我所了解的有传递方法有(当然其他的实现方法还有很多,我会继续努力探索更多的实现方法分享给大家)第一种:活动之间数据的传递(FiratActiv...
2018-08-13 11:36:04 3488 6
原创 Android异常:java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.len
Android studio 异常:java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference 这种标题的异常有很多种,我所知道的有的是布局出错,有的是Java代码的错误。不管是哪种错误应该都是...
2018-08-12 11:43:12 53129 5
原创 android studio 报错:The plugin org.jetbrains.android failed to save settings and has been disabled.
今天刚打开android studio时候突然出现了一个错误:The plugin org.jetbrains.android failed to save settings and has been disabled. Please restart Android Studio。在网上搜了几篇博客很快就解决了。现在来分享一下解决方法:①点击Android studio左上角File--&...
2018-08-09 09:52:04 6005 4
原创 android studio删除所有的断点
写过如何设置断点,那么现在就来说一下如何清理掉断点,比设置断点简单很多。①点击屏幕上面的Run——>View Breakpoints.②下图是点击后的弹出栏,红色框里面显示的就是你的所有断点,选中之后点击上面的“—”号就可以把所有断点清除了。...
2018-04-26 21:23:30 826 1
原创 Android sudio断点调试步骤详解
无论用什么编程软件来做项目,首先要了解的就是如何调试程序,而今天要说明的就是如何使用android studio来调试错误。我相信既然都会编写程序了,那么调试程序对于很多人来说就不显得那么难了。下面就通过一个简单的点击按钮事件来说明一下断点调试步骤:①手机调节到开发者模式连接到电脑上或者直接连接虚拟机。②在想要调试的那句代码的左侧灰色区域单击鼠标左键,效果如下图所示:③点击上面...
2018-04-26 20:48:53 348 1
原创 java Collection与ArrayList
一、集合的定义:1、集合,或者叫容器,是一个包含多个元素的对象;2、集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。3、集合类型主要有3种:set(集)、list(列表)和map(映射)二、ArrayList介绍:1、创建对象 :ArrayList al = new ArrayList();2...
2018-04-01 16:16:03 5129 2
原创 @override在Eclipse中的作用
1、可以表示下面的方法是重写的父类的方法2、有注释的作用,加上这个标记就说明是重写的父类的方法,调试程序比较方便。3、在方法的前面加上@override系统就可以帮助你检查方法的正确性。下面举一个例子:abstract class Athlete {public abstract void study();}class Pinpang extends Athlete{@O...
2018-03-10 16:27:14 2111 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人