我有这个:
<android.support.v7.preference.EditTextPreference
android:key="pref_somestring"
android:title="@string/setting_somestring"/>
在PreferenceFragmentCompat中膨胀:
@Override
public void onCreatePreferences(Bundle bundle, String s) {
// Load the Preferences from the XML file
addPreferencesFromResource(R.xml.settings);
}
我希望能够通过异步事件来更新可见片段上的值。
到目前为止,我已经尝试了以下方法:
Preference pref = findPreference("pref_somestring");
pref.setSummary(newValue); // works on pref summary only
pref.setDefaultValue(newValue); // doesn't help
pref.callChangeListener(newValue); //doesn't help either
SharedPreferences.Editor editor =
PreferenceManager.getDefaultSharedPreferences(
getContext().getApplicationContext()).edit();
editor.putString("pref_somestring", newValue);
editor.commit();
修改SharedPreference是我发现完全影响对话框的唯一方法...但是只有在我重新打开Fragment之后,它才起作用!
如果可能的话,我根本不想弄乱SharedPrefs。