5

我正在为 Android 制作动态壁纸。我的墙纸部分正在工作,并正在尝试为其添加设置。在 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 的 LiveWallpaper 代码的当代示例吗?

https://github.com/falsedmitri/LiveWallpaperTest.git

4

1 回答 1

3

从PreferenceActivity的文档中:

在 HONEYCOMB 之前,这个类只允许显示一组偏好;现在应该在新的 PreferenceFragment 类中找到此功能。如果您在旧模式下使用 PreferenceActivity,则那里的文档适用于此处已弃用的 API。

因此,您可以切换到使用 Fragments,也可以忽略这些警告。(了解不推荐使用的方法总有一天会从 API 中消失……)


有人可以指出使用 PreferenceFragments 的 LiveWallpaper 代码的当代示例吗?

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

于 2013-03-29T15:29:43.983 回答