06 2025 档案

摘要:一,报错信息 # systemctl start openvpn-server@.service Failed to start openvpn-server@.service: Unit name openvpn-server@.service is missing the instance na 阅读全文
posted @ 2025-06-28 13:05 刘宏缔的架构森林 阅读(1) 评论(0) 推荐(0)
摘要:一,代码 class VmListActivity : AppCompatActivity() { private lateinit var binding: ActivityVmListBinding //binding override fun onCreate(savedInstanceSta 阅读全文
posted @ 2025-06-28 13:05 刘宏缔的架构森林 阅读(23) 评论(0) 推荐(0)
摘要:一,代码: class VmListActivity : AppCompatActivity() { private lateinit var binding: ActivityVmListBinding //binding override fun onCreate(savedInstanceSt 阅读全文
posted @ 2025-06-28 13:04 刘宏缔的架构森林 阅读(13) 评论(0) 推荐(0)
摘要:一,代码: //处理按钮点击事件 binding.button.setOnClickListener { val p = 3 val token = "thistokenname" val params = mutableMapOf<String, Any>( "p" to p, "count" t 阅读全文
posted @ 2025-06-28 13:03 刘宏缔的架构森林 阅读(14) 评论(0) 推荐(0)
摘要:一,代码 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() //使用binding binding = ActivityVmListBi 阅读全文
posted @ 2025-06-28 13:03 刘宏缔的架构森林 阅读(77) 评论(0) 推荐(0)
摘要:一,代码: activity xml: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.co 阅读全文
posted @ 2025-06-28 13:03 刘宏缔的架构森林 阅读(71) 评论(0) 推荐(0)
摘要:一,说明: by lazy 是一种懒加载模式,也就是说变量的值并不是在声明的时候赋值的,而是在真正用到这个变量的时候,才会加载它,也就是为它赋值。并且第一次赋值后会记录好这个值,以后的访问,都会直接返回这个值。by lazy 模式只会执行一次赋值操作,也就是首次用到变量的时候,变量一旦被赋值后,就不 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(116) 评论(0) 推荐(0)
摘要:一,代码: 说明: abstract 关键字用于在Kotlin中声明抽象类。无法实例化抽象类(不能创建抽象类的对象)。但可以从它们中继承子类 非抽象属性 age和非抽象方法: 如果您需要在子类中覆盖这些成员,则应使用 open 关键字标记它们。抽象方法 : 它没有任何实现,必须在其子类中重写。 注意 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(23) 评论(0) 推荐(0)
摘要:一,代码: 类: package com.example.okdemo1.model //方式一:使用var、val自动声明初始化 class Demo1(var id: Int, var name: String) { //实在需要也可以再写init{}代码块做一些逻辑 init{ println 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(37) 评论(0) 推荐(0)
摘要:一,引入lifecycle相关库 1,在项目根目录下的build.gradle中配置脚本,增加: buildscript{ ext { lifecycle = "2.5.1" } } 编辑app下的build.gradle,增加: // lifecycle相关 api "androidx.lifec 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(63) 评论(0) 推荐(0)
摘要:一,lateinit的作用 1、特性 修饰可变变量:仅用于 var 声明。 手动初始化:开发者需在适当位置(如生命周期回调)显式初始化。 非空类型:只能用于非空类型(如 String、View),不支持基本数据类型(如 Int、Boolean)。 异常风险:访问未初始化的变量会抛出 Uninitia 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(85) 评论(0) 推荐(0)
摘要:一,代码例子: package com.example.okdemo1.activity import android.os.Bundle import android.widget.Button import androidx.activity.enableEdgeToEdge import an 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(53) 评论(0) 推荐(0)
摘要:一,两者的区别 主构造函数在类名后面使用constructor关键字声明,并且不能做任何操作,初始化可以在init代码块中进行在构造函数不具有注释符或者默认的可见性修饰符时,constructor关键字可以省略。 辅助构造函数需要使用constructor关键字声明,并且直接或者通过别的辅助函数调用 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(32) 评论(0) 推荐(0)
摘要:一,data类和普通类的区别 1, 主构造函数必须至少有一个参数,且参数标记为 val 或 var 数据类的主构造函数必须至少有一个参数,并且这些参数必须使用 val 或 var 声明。普通类则没有这样的要求。 2,数据类自动生成了以下方法: toString():生成格式化的字符串表示,如:Use 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(67) 评论(0) 推荐(0)
摘要:一,代码: package com.example.okdemo1.activity import android.os.Bundle import android.util.Log import android.view.MenuItem import android.widget.Button 阅读全文
posted @ 2025-06-22 12:50 刘宏缔的架构森林 阅读(14) 评论(0) 推荐(0)
摘要:一,代码 1,application public class MainApplication extends Application { private static MainApplication mApp; private static Context context; public Hash 阅读全文
posted @ 2025-06-14 15:23 刘宏缔的架构森林 阅读(54) 评论(0) 推荐(0)
摘要:一,代码例子: package com.example.okdemo1.interceptor; import android.content.Context; import android.content.Intent; import android.os.Handler; import andr 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(22) 评论(0) 推荐(0)
摘要:一,报错信息 Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag 原因: activity继承了context重载了startActivity方法,如 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(221) 评论(0) 推荐(0)
摘要:一,报错信息: java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare() 原因: 原因是Android中不允许在子线程中处理UI。如果要在子线程中处理UI那就要动态转到主线程中执行 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(307) 评论(0) 推荐(0)
摘要:一,安装第三方库 库地址: https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor 编辑 build.gradle,增加 // https://mvnrepository.com/artifact/com 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(159) 评论(0) 推荐(0)
摘要:一,代码: 接口返回的json格式 接口类 package com.example.okdemo1.interfaces; import com.example.okdemo1.model.BaseEntity; import com.example.okdemo1.model.UserListEn 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(89) 评论(0) 推荐(0)
摘要:一,安装第三方库 库地址: https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit 编辑build.gradle,添加 // https://mvnrepository.com/artifact/com.squareup. 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(96) 评论(0) 推荐(0)
摘要:一,代码: 1,build.gradle的配置 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-ru 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(23) 评论(0) 推荐(0)
摘要:一,安装第三方库: 第三方库地址: https://mvnrepository.com/artifact/me.jessyan/autosize 编辑build.gradle,添加: // https://mvnrepository.com/artifact/me.jessyan/autosize 阅读全文
posted @ 2025-06-14 15:22 刘宏缔的架构森林 阅读(267) 评论(0) 推荐(0)
摘要:一,?和!!的区别 ?.和!!主要区别在于它们对空指针的处理方式 ?.(安全调用操作符)‌:当变量可能为null时,使用?.可以安全地调用其方法或属性。 如果变量为null,则不执行调用,直接返回null !!(非空断言操作符)‌:当变量可能为null时,使用!!会强制执行调用, 如果变量为null 阅读全文
posted @ 2025-06-14 15:21 刘宏缔的架构森林 阅读(66) 评论(0) 推荐(0)
摘要:一,安装第三方库 库地址: https://mvnrepository.com/artifact/com.github.li-xiaojun/XPopup 编辑build.gradle,添加: // https://mvnrepository.com/artifact/com.github.li-x 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(416) 评论(0) 推荐(0)
摘要:一,gradle中的三种依赖 看例子: dependencies { //①.依赖当前项目下的某个模块[子工程] implementation project(':subject01') //②.依赖本地的某个jar文件 implementation files('libs/foo.jar', 'l 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(32) 评论(0) 推荐(0)
摘要:一,implementation 配置 定义:implementation 是一种依赖配置,适用于那些仅在当前模块内部使用的依赖。传递性:当一个模块使用 implementation 声明依赖时,这个依赖不会被暴露给该模块的消费者(即依赖此模块的其他模块)。这意味着,如果模块 A 使用 implem 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(112) 评论(0) 推荐(0)
摘要:一,安装第三方库 https://mvnrepository.com/artifact/com.google.android.flexbox/flexbox 编辑build.gralde,添加: // https://mvnrepository.com/artifact/com.google.and 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(192) 评论(0) 推荐(0)
摘要:一,代码: 如果同时在属性中同时设置了: android:layout_margin="10dp" android:layout_marginTop="30dp" 则只有layout_margin生效,layout_marginTop无效,并不会覆盖layout_margin的值.如果layout_ 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(53) 评论(0) 推荐(0)
摘要:一,代码: 样式文件位置: 内容:注意:name用来供调用 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style nam 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(20) 评论(0) 推荐(0)
摘要:一,安装第三方库 库地址: https://mvnrepository.com/artifact/com.github.barteksc/android-pdf-viewer 编辑build.gradle,添加: // https://mvnrepository.com/artifact/com.g 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(365) 评论(0) 推荐(0)
摘要:一,代码: xml:只有一个按钮 java: package com.example.okdemo1.activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; i 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(260) 评论(0) 推荐(0)
摘要:一,打开device explorer 二,找到文件后保存 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(17) 评论(0) 推荐(0)
摘要:一,安装第三方库 库地址 https://mvnrepository.com/artifact/com.github.nanchen2251/CompressHelper 编辑 build.gradle,添加 // https://mvnrepository.com/artifact/com.git 阅读全文
posted @ 2025-06-07 11:18 刘宏缔的架构森林 阅读(46) 评论(0) 推荐(0)
摘要:一,代码: xml上只有一个按钮 java代码: package com.example.okdemo1.activity; import android.Manifest; import android.content.Context; import android.content.Intent; 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(44) 评论(0) 推荐(0)
摘要:一,代码: 添加在AndroidManifest.xml中的FileProvider <provider android:name="androidx.core.content.FileProvider" android:authorities="com.example.okdemo1.filepr 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(86) 评论(0) 推荐(0)
摘要:一,报错信息 Failed to resolve: com.github.tbruyelle:rxpermissions:0.12 Show in Project Structure dialog Affected Modules: app 二,原因 需要把它所属的仓库添加到我们的gradle中但点 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(1736) 评论(0) 推荐(0)
摘要:一,代码 xml只有一个按钮 java: package com.example.okdemo1.activity; import android.Manifest; import android.content.Intent; import android.content.pm.PackageMa 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(70) 评论(0) 推荐(0)
摘要:一,配置 在AndroidManifest.xml中添加FileProvider,如下: <provider android:name="androidx.core.content.FileProvider" android:authorities="com.example.okdemo1.file 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(58) 评论(0) 推荐(0)
摘要:一,报错信息: 编译时报错: Failed to resolve: com.zhihu.android:matisse:0.5.3-beta3 二,解决: 在settings.gradle中添加: maven { url 'https://jitpack.io' } maven { url 'htt 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(162) 评论(0) 推荐(0)
摘要:一,安装第三方库 库地址: https://mvnrepository.com/artifact/com.zhihu.android/matisse 编辑 build.gradle,添加: // https://mvnrepository.com/artifact/com.zhihu.android 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(118) 评论(0) 推荐(0)
摘要:一,安装第三方库 库地址: https://mvnrepository.com/artifact/androidx.media3/media3-exoplayer 在build.gradle中添加: implementation "androidx.media3:media3-exoplayer:1 阅读全文
posted @ 2025-06-07 10:50 刘宏缔的架构森林 阅读(218) 评论(0) 推荐(0)
摘要:一,区别 var var 关键字用于声明一个可变的变量,即这个变量的值可以在程序运行过程中被改变。 val val 关键字用于声明一个不可变的变量,即这个变量的值在初始化后不能被改变。 使用 val 声明的变量必须在声明时或者构造器中初始化,一旦初始化后,其值就不能被改变。 需要注意的地方:val声 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(220) 评论(0) 推荐(0)
摘要:一,java转kotlin code->Convert Java File to Kotlin File 如图: 弹出提示,需要在项目中配置kotlin 确认 提示一些需要修正 二,一个例子: package com.example.okdemo1.activity import android.o 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(242) 评论(0) 推荐(0)
摘要:一,安装第三方库 官方地址: https://mvnrepository.com/artifact/com.github.hackware1993/MagicIndicator 编辑 build.gradle,添加: // https://mvnrepository.com/artifact/com 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(262) 评论(0) 推荐(0)
摘要:一,报错信息 * What went wrong: Execution failed for task ':app:mergeDebugNativeLibs'. > Could not resolve all files for configuration ':app:debugRuntimeCla 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(623) 评论(0) 推荐(0)
摘要:一,代码 activity xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/ 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(17) 评论(0) 推荐(0)
摘要:一,代码: activity xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(42) 评论(0) 推荐(0)
摘要:一,报错信息: 错误: 对于add(int,MsgFragment), 找不到合适的方法 fragmentTransaction.add(R.id.fragment_container, fragment); ^ 方法 FragmentTransaction.add(Fragment,String) 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(40) 评论(0) 推荐(0)
摘要:一,创建common目录 然后在common目录下创建layout目录 二,原来在layout目录下的xml需要另放一个目录 我们创建一个main目录,main目录下创建layout,移动到这里 三,在build.gradle中添加已创建目录: //在layout文件夹下建立子文件夹 sourceS 阅读全文
posted @ 2025-06-02 12:27 刘宏缔的架构森林 阅读(96) 评论(0) 推荐(0)
摘要:一,代码: 公用部分 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertic 阅读全文
posted @ 2025-06-02 12:23 刘宏缔的架构森林 阅读(15) 评论(0) 推荐(0)
摘要:一,代码: activity xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com 阅读全文
posted @ 2025-06-02 12:23 刘宏缔的架构森林 阅读(44) 评论(0) 推荐(0)
摘要:一,代码: activity的xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com 阅读全文
posted @ 2025-06-02 12:22 刘宏缔的架构森林 阅读(258) 评论(0) 推荐(0)
摘要:一,代码: activity xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com 阅读全文
posted @ 2025-06-02 12:22 刘宏缔的架构森林 阅读(76) 评论(0) 推荐(0)
摘要:一,代码: 说明:在外层的最上面,增加了固定不移动的header xml: <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http: 阅读全文
posted @ 2025-06-02 12:22 刘宏缔的架构森林 阅读(239) 评论(0) 推荐(0)
摘要:一,NestedScrollView与ScrollView的区别: NestedScrollView 和 ScrollView 的主要区别在于它具备“嵌套滑动”(Nested Scrolling)功能。在 Android 中,嵌套滑动是一种滚动冲突处理机制,允许父视图和子视图协同工作,共同处理滑动事 阅读全文
posted @ 2025-06-02 12:22 刘宏缔的架构森林 阅读(194) 评论(0) 推荐(0)
摘要:一,代码: xml: activity <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.co 阅读全文
posted @ 2025-06-02 12:22 刘宏缔的架构森林 阅读(72) 评论(0) 推荐(0)
摘要:一,代码: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/andr 阅读全文
posted @ 2025-06-02 12:22 刘宏缔的架构森林 阅读(38) 评论(0) 推荐(0)
摘要:一,fragment生命周期以及和activity生命周期的关系 和activity生命周期的关系 二,代码: viewpager2的两个fragment cate1 package com.example.okdemo1.fragment; import android.app.Activity; 阅读全文
posted @ 2025-06-02 12:22 刘宏缔的架构森林 阅读(53) 评论(0) 推荐(0)