一、概述
在開發過程中通常需要保存用戶或App的一些配置信息,如token,DeviceNo,OkPreference是一個管理配置信息的工具庫,
可以方便的管理需要配置的字段,字段支持Long,Int,Boolean,String,Float五種基本類型,也可以是任意類。
二、版本
已上傳JitPack,最新版本1.2,直接在gradle中添加依賴即可。
compile 'com.github.Tailyou:OkPreference:1.2'
三、使用
3.1 app build.gradle中添加依賴
dependencies {
compile 'com.github.Tailyou:OkPreference:1.2'
}
3.2 root build.gradle中添加
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
3.3 繼承PreferenceHolderApplication或在自定義的Application中添加如下代碼:
override fun onCreate() {
super.onCreate()
...
PreferenceHolder.setContext(applicationContext)
}
3.4 繼承PreferenceHolder,添加需要配置的字段
const val CHINESE: Int = 1
const val ENGLISH: Int = 2
const val JAPANESE: Int = 3
const val DEFAULT_DEVICE_NO: String = "AG10000000000"
object AppConfig : PreferenceHolder() {
var deviceNo: String by bindToPreferenceField(DEFAULT_DEVICE_NO, "DeviceNo")
var language: Int by bindToPreferenceField(CHINESE, "Language")
}
object UserConfig : PreferenceHolder() {
var user: User? by bindToPreferenceFieldNullable("User")
var token: String? by bindToPreferenceFieldNullable("Token")
}
data class User(
var name: String,
var age: Int
)
3.5 取值、賦值
tvDeviceNo.text = AppConfig.deviceNo
btnChangeDeviceNo.setOnClickListener {
AppConfig.deviceNo = "AG100000000" + String.format("%02d", Random().nextInt(100))
tvDeviceNo.text = AppConfig.deviceNo
}
btnSaveEntity.setOnClickListener {
UserConfig.user = User("tailyou", 20)
toast((UserConfig.user as User).name)
}
具體用法參見Demo,項目地址:https://github.com/Tailyou/OkPreference