0

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

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

当我运行它时,会出现对话框,但是当我添加我的名字时它不会更新并且仍然说“请添加..”我遗漏了什么?

4

1 回答 1

1

请创建您自己的 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 中看起来像这样:

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

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

于 2016-02-08T06:45:10.487 回答