Я хочу использовать getSharedPreference
вместо getDefaultSharedPreference
(из-за какой-то ошибки на некоторых устройствах это).
И я хочу слушать изменения предпочтений. Итак, я сделал что-то вроде:
this.getSharedPreferences("myPrefDB", MODE_PRIVATE).registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener()
{
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key)
{
if (key.equalsIgnoreCase("myPrefKey"))
{
flag = sharedPreferences.getBoolean(key,true);
}
}
});
Но это не работает и дает мне неправильное предпочтение.
Даже напишите что-то вроде:
public class Setting extends PreferenceActivity implements OnSharedPreferenceChangeListener
{
//like above
}
Опять не работает.
Я должен сказать, что ничего не пишу для значения вставки (edit()
, commit()
). Я просто использую:
addPreferencesFromResource(R.xml.preferences);
И я думаю, что эта строка выше записывает значение в имя базы данных по умолчанию (например, «com.example.something_preferences
»). Но я хочу записать значения в свое пользовательское имя (myPrefDB).