- 博客(31)
- 资源 (18)
- 收藏
- 关注
原创 Android设计模式之责任链模式
使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系将这些对象连城一条链,并沿着这条链传递该请求,只到有对象处理它为止。
2025-03-31 23:53:26
928
原创 Android设计模式之模板方法模式
定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
2025-03-29 23:24:25
765
原创 Android 设计模式之适配器模式
一、定义:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。// 适配器:将 List<User> 转换为 RecyclerView 所需的 Adapter 接口。被适配者Adaptee:需要被适配的类或数据源。目标接口Target:客户端期待的接口。2.频繁数据刷新可能会影响性能。// 绑定数据到 ViewHolder。// ViewHolder 内部类。// 创建 ViewHolder。// 数据源(被适配者)// 被适配者:数据类。
2025-03-28 23:15:27
1025
原创 Android设计模式之观察者模式
ConcreteOberver:具体观察者,实现抽象观察者的更新接口,以便主题状态发生变化时更新自身状态。一、定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。Subject:抽象主题被观察的角色,管理观察者集合,提供注册/注销方法,定义通知逻辑。ConcreteSubject:具体主题,存储具体状态数据,状态变更时触发通知。Observer:抽象观察者,定义更新接口,使得主题状态发生变化时更新自己。// 具体被观察者(如网络请求模块)
2025-03-27 00:17:35
621
原创 Android设计模式之工厂方法模式
4.MVP/MVVM架构中的对象创建:使用工厂方法创建Presenter或viewModel,避免直接new 对象。1.抽象工厂:工厂模式的核心,声明工厂方法,返回抽象产品对象。扩展性:新增产品类型只需要增加新工厂类,符合开闭原则。2.具体工厂:实现工厂方法,返还具体的产品对象。类数量增加:每增加一个产品,需要新增对于的工厂类。一、定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。4.具体产品:实现抽象产品的具体类。3.抽象产品:定义产品的相关接口。统一管理:集中控制对象的创建过程。
2025-03-25 23:39:01
636
原创 Android设计模式之Builder模式
1.Builder类将AlertDialog相关参数放到AlertController.AlertParams成员变量P中,Builder类调用create方法创建AlertDialog对象,在create里通过P.apply方法将变量P传入AertDialog的mAlert对象中。1.参数多且可选,需要构建不同的实例,如网络请求,图片加载,复杂的配置对象。一、定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。优点:参数灵活,代码可读性高,对象不可变性,构建过程可控。
2025-03-25 14:12:36
490
原创 Android设计模式之单例模式
3.2懒汉式:需要使用实例时才进行初始化,多线程不安全。3.3双重检查锁,DCL:使用时创建实例,使用双重锁校验,线程安全。3.5枚举单例:简洁、线程安全,且能防止反射和序列化破坏单例。一、定义:确保一个类只有一个实例,并且自动实例化,并向整个系统提供这个实例。3.1饿汉式:类加载时立即初始化,线程安全,可能会浪费资源。private Singleton() {} // 私有构造方法。3.4静态内部类:使用类加载机制,延迟初始化,线程安全。二、使用场景:避免重复创建对象,过多消耗系统资源。
2025-03-24 23:50:03
471
原创 android 使用Tablayout报错:Caused by: android.view.InflateException: Binary XML file line #17: Binary XML
使用TabLayout报错
2025-01-21 09:36:40
349
原创 android编译报错:Direct local .aar file dependencies are not supported when building an AAR.
导入aar编译失败
2024-08-22 12:28:02
1301
原创 解决More than one file was found with OS independent path ‘lib/armeabi-v7a/libc++_shared.so‘报错
解决More than one file was found with OS independent path 'lib/armeabi-v7a/libc++_shared.so'报错
2024-03-25 10:43:47
878
1
原创 java static method_java.lang.NoSuchMethodError: No static method metafactory
出现这个错误是因为,在kotlin中使用了Lambda表达式,jdk必须是1.8以上编译,需要在Android的build.gradle中加上。原文链接:https://blog.csdn.net/weixin_35665984/article/details/114208081。版权声明:本文为CSDN博主「1991xiaowu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
2023-12-13 11:30:42
796
原创 androidstudio导入新项目,java文件红色J,无法编译
多数是SDK没有导致无法进行编译,或者对应的build-tool版本与compileSDK版本对不上。1.下载minSDK和targetSDK所有版本。2.下载对应SDK的build-tool版本。
2023-12-13 11:20:23
1059
原创 AndroidStudio Ctrl+Shift+F 全局搜索无效
关闭这两种占用,Android studio的全局搜索即可使用,如果还不行就得下载热键冲突检测软件了。一般都是热键冲突导致,最经常出现的2种情况,关闭即可。情况1.系统微软输入法的简繁体切换占用,需要手动关闭。情况2:自安装输入法简繁体切换占用,比如搜狗输入法。
2023-09-07 22:14:05
925
原创 ButterKnife 设置点击事件没反应
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'//需要配置此插件。检查项目gradle配置,是否已配置以下插件。//点击事件没反应,大概率没有配置此选项。检查moudle的gradle配置。
2023-04-18 14:30:38
250
原创 gradle编译报错:error: attribute android:requestLegacyExternalStorage not found.error: failed processing
android:requestLegacyExternalStorage属性,该属性需要compileSDK在 29以上才可以使用,修改compileSdk到29或以上即可编译成功。由于在AndroidMenifest增加了。
2023-04-14 15:15:00
467
原创 打开项目报错:If the artifact you are trying to retrieve can be found in the repository but without metadat
gradle编译报错
2023-04-14 12:03:34
3450
原创 解决git报错: OpenSSL SSL_read: Connection was reset, errno 10054
git OpenSSL SSL_read: Connection was reset, errno 10054
2022-04-07 17:40:37
3985
原创 解决git报错:Failed to connect to github.com port 443: Timed out
git Failed to connect to github.com
2022-04-07 17:29:27
3069
原创 studio升级导致 resource xml文件 报错“app_version“ is not translated in zh解决方法
1.如果不想看到提示错误,直接在resource标签加上一句ignore配置即可<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore = "MissingTranslation">2.如果想配置全局的xml文件,则在gradle文件添加下面的配置lintOptions{checkReleaseBuildsfalseabortOnErrorfalse...
2022-03-07 10:18:57
315
原创 自定义View:Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context,
报错信息:Caused by: java.lang.NoSuchMethodException: [class android.content.Context, interface android.util.AttributeSet]原因:在自定义view中没有重写(Context context,AttributeSet attrs)构造器,导致没法加载自定义View
2017-09-09 10:34:09
3532
原创 六度人脉,每一个擦肩而过都有可能和你有关系
六度人脉关系理论(Six Degrees of Separation),是指地球上所有的人都可以通过六层以内的熟人链和任何其他人联系起来。通俗地讲:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。 这个理论是1929年,由匈牙利作家Frigyes Karinthy在短篇故事‘Chains’中首次提出的。1967年,美国社会学家Stanl
2015-09-06 23:59:01
1306
原创 蚂蚁流浪记
今天想到了一个很好的小说的故事的开头。它直接来源于我想出去流浪的内心。 一个森林里有一个蚂蚁部落,它们在这个森林里繁衍生息了好几百年。部落里的蚂蚁从未走出过森林,不知道森林之外的世界到底是怎样的。他们对外部的世界的了解,是从其他动物身上听过来的。其他动物都跟他们说,外面的世界很危险,千万不要到外面的世界去。蚂蚁部落里流传着一个魔咒:凡是离开了森林的蚂蚁,都会被黑暗大帝摩西夺取灵魂。但部落里
2015-05-28 19:32:38
452
简洁易操作的笔记本
2015-08-09
安卓5.0的原生风格,给你非凡体验的闹钟
2015-08-09
生活新鲜事,各类幽默图片和搞笑段子
2015-08-09
各类新闻杂志环球资讯新鲜不断
2015-08-09
可远程电脑管理手机文件的文件管理器
2015-08-09
哈勃望远镜给你呈现宇宙、恒星、行星的模样--哈勃相册
2015-08-09
新鲜风格动漫,漫画视频随便看-艾尼莫漫画APP
2015-08-09
创意讨论社区,技术交流空间,社交V2EXAPP
2015-08-09
极速安全省流量经典版浏览器。
2015-08-09
超方便获取手机短信验证码并放到粘贴板的工具
2015-07-15
简单、便捷的笔记本APP
2015-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人