我为Android创建了一个动态壁纸。我试图实施设置菜单,但我遇到了很多困难。基本上,一切都有效,但Wallpaper service
没有提取设置菜单中的设置。我根据本教程使用SharedPreferences
:
我试图弄清楚为什么设置没有转移到主Wallpaper Service
,我发现我的onSharedPreferencesChanged
方法Settings Activity
,PreferenceActivity
扩展为空白。我目前没有提供我的代码,但这段代码非常相似,所以我的问题是为什么onSharedPreferenceChanged
方法是空白的,应该是什么?在我看来,这是代码应该实际进行更改的地方。
以下是代码:
package ca.jvsh.livewallpaper;
import ca.jvsh.livewallpaper.R;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class LiveWallpaperSettings extends PreferenceActivity
implements SharedPreferences.OnSharedPreferenceChangeListener
{
@Override
protected void onCreate(Bundle icicle)
{
super.onCreate(icicle);
getPreferenceManager().setSharedPreferencesName(LiveWallpaper.SHARED_PREFS_NAME);
addPreferencesFromResource(R.xml.livewallpaper_settings);
getPreferenceManager().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onResume()
{
super.onResume();
}
@Override
protected void onDestroy()
{
getPreferenceManager().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
}
public void **onSharedPreferenceChanged**(SharedPreferences sharedPreferences,
String key)
{
}
}
答案 0 :(得分:1)
它应该是空白的。调用此方法,以便您可以执行您可能要执行的任何特定更改。但是,偏好的价值已经发生了变化。只需检查您是否正确检查首选项的值。