将首选项迁移到 AndroidX
Migrating preferences to AndroidX
我正在尝试将旧的自动生成(来自 Android Studio 中的 activity 库)设置 activity 迁移到 AndroidX
。不幸的是,我找不到有关如何执行此操作的任何信息。官方文档不是很有帮助,因为它们假设您已经准备好所有代码来添加您的首选项片段和 XML
。
我尝试将旧的 PreferenceScreen
切换为 AndroidX
,并将 PreferenceFragment
切换为 PreferenceFragmentCompat
,但这只会导致运行时异常。
有人知道如何执行这样的迁移吗?
转到 Android Studio 功能区中的 Refactor 选项。然后点击迁移到 AndroidX
.
此外,在 build.properties
文件中添加这两行:
android.useAndroidX=true
android.enableJetifier=true
这些行将强制未移动到 AndroidX
的 类 在迁移时迁移。
注意:出现提示时请备份您的项目!如果您对 AndroidX 了解不多,请备份您的项目然后尝试!
回答我自己的问题 - 不值得迁移现有的偏好 activity。像文档中那样制作一个空的并手动设置片段会更快。在这种情况下一切似乎都在工作,并且以前的大部分代码都没有使用过。
我必须将现有项目迁移到 AndroidX。
所以我刚切换到 PreferenceFragmentCompat
。
为了给你一个想法,这里有一些示例代码:
Java:
public class SettingsFragment extends
androidx.preference.PreferenceFragmentCompat implements
androidx.preference.Preference.OnPreferenceClickListener,
androidx.preference.Preference.OnPreferenceChangeListener {
// ... your code
}
xml:
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="@string/PREF_SCR_MAIN">
<androidx.preference.PreferenceCategory
android:key="@string/PREF_CAT_MAIN"
android:title="@string/pref_cat_main">
<androidx.preference.CheckBoxPreference
android:key="@string/TOUCH_TWICE_TO_EXIT"
android:summary="@string/pref_sum_touch_twice_to_exit"
android:title="@string/pref_title_touch_twice_to_exit" />
</androidx.preference.PreferenceCategory>
</androidx.preference.PreferenceScreen
我正在尝试将旧的自动生成(来自 Android Studio 中的 activity 库)设置 activity 迁移到 AndroidX
。不幸的是,我找不到有关如何执行此操作的任何信息。官方文档不是很有帮助,因为它们假设您已经准备好所有代码来添加您的首选项片段和 XML
。
我尝试将旧的 PreferenceScreen
切换为 AndroidX
,并将 PreferenceFragment
切换为 PreferenceFragmentCompat
,但这只会导致运行时异常。
有人知道如何执行这样的迁移吗?
转到 Android Studio 功能区中的 Refactor 选项。然后点击迁移到 AndroidX
.
此外,在 build.properties
文件中添加这两行:
android.useAndroidX=true
android.enableJetifier=true
这些行将强制未移动到 AndroidX
的 类 在迁移时迁移。
注意:出现提示时请备份您的项目!如果您对 AndroidX 了解不多,请备份您的项目然后尝试!
回答我自己的问题 - 不值得迁移现有的偏好 activity。像文档中那样制作一个空的并手动设置片段会更快。在这种情况下一切似乎都在工作,并且以前的大部分代码都没有使用过。
我必须将现有项目迁移到 AndroidX。
所以我刚切换到 PreferenceFragmentCompat
。
为了给你一个想法,这里有一些示例代码:
Java:
public class SettingsFragment extends
androidx.preference.PreferenceFragmentCompat implements
androidx.preference.Preference.OnPreferenceClickListener,
androidx.preference.Preference.OnPreferenceChangeListener {
// ... your code
}
xml:
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="@string/PREF_SCR_MAIN">
<androidx.preference.PreferenceCategory
android:key="@string/PREF_CAT_MAIN"
android:title="@string/pref_cat_main">
<androidx.preference.CheckBoxPreference
android:key="@string/TOUCH_TWICE_TO_EXIT"
android:summary="@string/pref_sum_touch_twice_to_exit"
android:title="@string/pref_title_touch_twice_to_exit" />
</androidx.preference.PreferenceCategory>
</androidx.preference.PreferenceScreen