如何在EditTextPreference的对话框中以编程方式设置值?

时间:2018-10-05 12:29:57

标签: android android-preferences

我有这个:

<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。

0 个答案:

没有答案