获取首选项管理器已被弃用。

5

我是一个为安卓制作动态壁纸的开发者。目前已经实现了壁纸部分的功能,现在正在尝试添加设置选项。在LiveWallpaperSettings里,我有以下代码:

@Override
protected void onCreate(Bundle icicle)
{
    super.onCreate(icicle);
    getPreferenceManager().setSharedPreferencesName(LiveWallpaperService.SHARED_PREFS_NAME);
    addPreferencesFromResource(R.string.livewallpaper_settings);
    getPreferenceManager().getSharedPreferences()
            .registerOnSharedPreferenceChangeListener(this);
}

编译器提示 getPreferenceManager()addPreferencesFromResource() 已经过时,那我应该使用什么代替呢?这些方法来自于PreferenceActivity。根据目前为止的一些评论,我似乎正在使用一种过时的方法。有人能指出一个使用PreferenceFragments的现代化代码示例吗?请参考以下链接:https://github.com/falsedmitri/LiveWallpaperTest.git

Preference.getPreferenceManager() 没有被弃用。 - rekire
1
Preference.getPreferenceManager() 已在 API 级别 29 中弃用。 - cesargastonec
1个回答

3

根据PreferenceActivity的文档,在HONEYCOMB版本之前,该类只允许显示单个设置项;现在应该使用新的PreferenceFragment类。如果您正在使用PreferenceActivity的旧模式,则适用于那里的文档将适用于此处弃用的API。

因此,您可以切换到使用Fragments,也可以忽略这些警告。(请注意,弃用的方法将来可能会从API中消失...)


有人能指出一个使用PreferenceFragments编写LiveWallpaper代码的现代示例吗?

在PreferenceActivities和PreferenceFragments中使用的方法没有太大区别,总的来说,切换到Fragments是最大的变化。但是PreferenceFragment有一个示例,您可以看到它的现代形式仍然可以使用addPreferencesFromResource()等方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接