У меня возникла небольшая проблема при сравнении ключевых строк в методе OnSharedPreferenceChanged, и я надеялся, что вы сможете взглянуть на него - в основном проблема заключается в том, что даже когда я знаю и могу консоль записать в журнал точную строку длясравнение, код в блоке операторов никогда не срабатывает - я знаю, что это что-то глупое, но я просто не вижу этого
заранее спасибо
obie
вот код
public class WallpaperSettings extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener
{
public static final String TAG = "WallpaperSettings";
private static final String USE_CLOCK_TEXT = "useClockText";
private Preference _clockTextPosPicker;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
getPreferenceManager().setSharedPreferencesName(HexClockWallpaper.SHARED_PREFS_NAME);
addPreferencesFromResource(R.xml.hexclockwallpaper_settings);
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onDestroy()
{
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key)
{
// [Log] key: 'useClockText'
Log.i(TAG, "key: '" + key + "'");
if (key == USE_CLOCK_TEXT)
{
// None of this is ever seen
Log.i(TAG, "key == " + USE_CLOCK_TEXT);
Boolean selected = sharedPreferences.getBoolean(key, true);
Log.i(TAG, "selected changed: " + selected);
if (selected)
{
getPreferenceScreen().removePreference(getClockTextPicker());
}
else
{
getPreferenceScreen().addPreference(getClockTextPicker());
}
}
}
public Preference getClockTextPicker()
{
if (_clockTextPosPicker == null)
_clockTextPosPicker = findPreference("clockTextPosPicker");
return _clockTextPosPicker;
}
}