将字符串添加到对话框后,我的 EditTextPreference 没有更新

My EditTextPreference is not updaing after adding string to Dialog

我已使用以下代码向我的 Settings.xml 添加了一个 EditTextPreference

    <EditTextPreference
        android:key="prefDeviceUser"
        android:title="User Name"
        android:summary="Please add user name." />

当我 运行 时,会出现对话框,但是当我添加我的名字时,它不会更新,仍然显示 'Please add..' 我遗漏了什么?

请创建您自己的 EditTextPreference。要获得您的结果,您需要重写 getSummary 方法。

public class EditTextPreference extends android.preference.EditTextPreference{

    public EditTextPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public EditTextPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public EditTextPreference(Context context) {
        super(context);
    }

    @Override
    public CharSequence getSummary() {
        String summary = super.getSummary().toString();
        return String.format(summary, getText());
    }
}

然后我在 preferences.xml 文件中使用新创建的 EditTextPreference,总而言之,我从 strings.xml 中设置值,如下所示:

android:summary="@string/string_val"

最后在 strings.xml 中看起来像这样:

请select用户。当前设置为:%s

最后的总结是:请 select 用户。当前设置为:selectedValue