我有一个WeatherData
类,我在通过REST API调用接收天气更新后填充。我在WeatherData
中保存了SharedPreferences
个字段。
现在有一个fragment
在UI上显示这些数据。我想将WeatherData
类绑定到UI。我需要,如果WeatherData
中的任何SharedPreferences
发生了变化,我会立即更新用户界面。
如何将SharedPreference
绑定到XML
布局?
答案 0 :(得分:0)
您可以使用prefs.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
//update my layout
}
});
git sync
答案 1 :(得分:0)
定义以下变量
public static ObservableInt someCounter = new ObservableInt(getPrefs().getInt("some_counter", 0)) {
@Override
public void set(int value) {
super.set(value);
getPrefs().edit().putInt("some_counter", value).commit(); (apply() might be more suitable depending on your use)
}
};
然后在xml布局中导入包含该静态变量的类,并像引用任何其他可观察对象一样引用它
我写了一篇文章,更深入地介绍了这一点。 https://mpetersen3.wordpress.com/2017/04/08/data-binding-with-shared-prefs/