返回
安卓10迁移,用Kotlin复现PreferenceActivity,androidx使用全攻略
Android
2023-12-11 05:26:09
引言
Android 10横空出世,在浮躁的更新风潮中,我们静下心来回顾一些被遗忘在角落的更新。AndroidX ,作为谷歌官方大力的主推产品,统一了Android支持库,为我们带来了不少惊喜。
这次我就以Preference 为媒介,带你一起探索AndroidX的全新世界。从官方文档到实战操作,层层剥开它的神秘面纱。
官方文档的缺陷
在使用Preference的过程中,我参考了官方文档。但令我失望的是,文档中存在一些错误和不足,给我的探索带来了不小的阻碍。
比如,在使用PreferenceFragmentCompat时,官方文档中没有明确指出需要在build.gradle 文件中添加依赖。这导致我在编译时遇到了错误,浪费了不少时间排查。
androidx.preference的正确用法
尽管官方文档存在缺陷,但我还是成功地掌握了androidx.preference库的使用方法。
- 添加依赖
dependencies {
implementation "androidx.preference:preference:1.1.1"
}
- 使用PreferenceFragmentCompat
class MyPreferenceFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences, rootKey)
}
}
- 使用PreferenceActivity
class MyPreferenceActivity : PreferenceActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
addPreferencesFromResource(R.xml.preferences)
}
}
示例代码
// preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="设置">
<CheckBoxPreference
android:key="pref_dark_mode"
android:title="深色模式"
android:defaultValue="false" />
<ListPreference
android:key="pref_language"
android:title="语言"
android:entries="@array/languages"
android:entryValues="@array/language_values"
android:defaultValue="en" />
</PreferenceCategory>
</PreferenceScreen>
总结
AndroidX的出现为Android开发带来了新的机遇。虽然官方文档存在一些缺陷,但瑕不掩瑜,androidx.preference库仍然是一款值得信赖的工具。
希望这篇文章能给大家带来帮助,在AndroidX的道路上少走一些弯路。
致谢
感谢谷歌官方对AndroidX的支持,让我们能够享受到更方便、更强大的开发工具。