【发布时间】:2012-10-30 12:02:04
【问题描述】:
我想使用getSharedPreference 而不是getDefaultSharedPreference(因为某些设备中的一些错误this)。
我想听听偏好的变化。所以我做了类似的事情:
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)。
【问题讨论】:
-
“因为某些设备的第二个错误”——请引用。
-
@CommonsWare stackoverflow.com/questions/10786172/…
标签: android android-preferences