我是Android开发的新手。
在我的应用中,当用户更改首选项时,应调用一个函数来更新一些变量。
这是我当前的代码:
mypref.setOnPreferenceChangeListener(
new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference arg0, Object arg1) {
if(arg1.toString().matches("...") == false) {
...
return false;
}
...
updateVariables();
return true;
}
});
问题在于,当调用
updateVariables()
时,首选项值尚未更新,并且该函数看到了旧值。private void updateVariables()
{
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
Map<String, ?> savedKeys = sharedPref.getAll();
for (Map.Entry<String, ?> entry : savedKeys.entrySet()) {
// for each preference...
}
}
什么是侵入性最小的解决方案?谢谢!
最佳答案
onPreferenceChange()
的第二个参数(此处为arg1
)是新值。我建议也将其作为参数添加到updateVariables()
中,然后将对象传递给它以使用它。
关于android - 如何在onPreferenceChange之后调用函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7693640/