PreferenceHolder 项目教程
1. 项目的目录结构及介绍
PreferenceHolder 项目的目录结构如下:
PreferenceHolder/
├── build.gradle
├── gradle.properties
├── settings.gradle
├── PreferenceHolder/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── kotlin/
│ │ │ │ └── com/
│ │ │ │ └── marcinmoskala/
│ │ │ │ └── preferenceholder/
│ │ │ │ ├── PreferenceHolder.kt
│ │ │ │ ├── PreferenceFieldBinder.kt
│ │ │ │ ├── PreferenceFieldDelegate.kt
│ │ │ │ └── PreferenceHolderApplication.kt
│ │ │ └── resources/
│ │ └── test/
│ │ └── kotlin/
│ │ └── com/
│ │ └── marcinmoskala/
│ │ └── preferenceholder/
│ │ └── PreferenceHolderTest.kt
├── PreferenceHolder-Gson-Serializer/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── kotlin/
│ │ │ │ └── com/
│ │ │ │ └── marcinmoskala/
│ │ │ │ └── preferenceholder/
│ │ │ │ └── gson/
│ │ │ │ └── GsonPreferenceFieldBinder.kt
│ │ │ └── resources/
│ │ └── test/
│ │ └── kotlin/
│ │ └── com/
│ │ └── marcinmoskala/
│ │ └── preferenceholder/
│ │ └── gson/
│ │ └── GsonPreferenceFieldBinderTest.kt
└── README.md
目录结构介绍
PreferenceHolder/
: 主项目目录,包含核心代码和资源文件。src/main/kotlin/com/marcinmoskala/preferenceholder/
: 核心代码文件,包括PreferenceHolder.kt
等。src/test/kotlin/com/marcinmoskala/preferenceholder/
: 测试代码文件,包括PreferenceHolderTest.kt
等。
PreferenceHolder-Gson-Serializer/
: Gson 序列化支持模块,包含相关代码和资源文件。src/main/kotlin/com/marcinmoskala/preferenceholder/gson/
: Gson 序列化相关代码文件,包括GsonPreferenceFieldBinder.kt
等。src/test/kotlin/com/marcinmoskala/preferenceholder/gson/
: Gson 序列化测试代码文件,包括GsonPreferenceFieldBinderTest.kt
等。
2. 项目的启动文件介绍
PreferenceHolder.kt
PreferenceHolder.kt
是项目的核心启动文件,定义了 PreferenceHolder
类和相关方法。以下是文件的主要内容:
package com.marcinmoskala.preferenceholder
import android.content.Context
import android.content.SharedPreferences
abstract class PreferenceHolder {
companion object {
lateinit var preferences: SharedPreferences
fun setContext(context: Context) {
preferences = context.getSharedPreferences(context.packageName + "Preferences", Context.MODE_PRIVATE)
}
}
protected inline fun <reified T> bindToPreferenceField(default: T): PreferenceFieldDelegate<T> {
return PreferenceFieldDelegate(default)
}
protected inline fun <reified T> bindToPreferenceFieldNullable(): PreferenceFieldDelegate<T?> {
return PreferenceFieldDelegate(null)
}
}
PreferenceHolderApplication.kt
PreferenceHolderApplication.kt
是项目的应用类文件,用于初始化 PreferenceHolder
。以下是文件的主要内容:
package com.marcinmoskala.preferenceholder
import android.app.Application
class PreferenceHolderApplication : Application() {
override fun onCreate() {
super.onCreate()
PreferenceHolder.setContext(this)
}
}
3. 项目的配置文件介绍
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考