Preferences field binder for JVM and Android
Local settings library that runs in plain Java and Android.
@JvmField @BindPreference var name = ""
@JvmField @BindPreference var age = 0
lateinit var saver = bindPreferences()
fun applyChanges(person: Person) {
name = person.name
age = person.age
saver.save()
}
repositories {
mavenCentral()
}
dependencies {
implementation "com.hendraanggrian.auto:prefs-jvm:$version" // for plain Java project
implementation "com.hendraanggrian.auto:prefs-android:$version" // for Android project
annotationProcessor "com.hendraanggrian.auto:prefs-compiler:$version" // or kapt for Kotlin
}
The native preference manager of Java applet is Preferences .
class MyClass {
@JvmField @BindPreference var name = ""
@JvmField @BindPreference var age = 0
lateinit var saver: PreferencesSaver
init {
val preferences = Preferences.userNodeForPackage(MyClass::class.java)
saver = bindPreferences(preferences)
}
fun applyChanges(person: Person) {
name = person.name
age = person.age
saver.save()
}
}
In Android, SharedPreferences
can be created from Context
or Fragment
.
class MyActivity : Activity() {
@JvmField @BindPreference var name = ""
@JvmField @BindPreference var age = 0
lateinit var saver: PreferencesSaver
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
saver = bindPreferences()
}
fun applyChanges(person: Person) {
name = person.name
age = person.age
saver.save()
}
}