我为 Android 创建了动态壁纸。我正在尝试实现一个设置菜单,但遇到了很大的困难。基本上,除了设置菜单中的设置未被壁纸服务
选取之外,一切正常。我根据本教程使用 SharedPreferences
:
我试图找出为什么这些设置没有被转移到主Wallpaper Service
,并且我想到我的onSharedPreferencesChanged
方法扩展 PreferenceActivity
的 Settings Activity
为空。我现在没有代码,但这段代码非常相似,所以我的问题是为什么 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)
{
}
}
最佳答案
它应该是空白的。调用此方法是为了让您可以执行您可能想要执行的任何特定更改。但 Preference 的值已经改变了。只需检查您是否正确检查了首选项的值即可。
关于java - 为什么此设置 Activity 的 onSharedPreferenceChanged 方法为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950658/