我想使用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)。