将字符串添加到对话框后,我的 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
我已使用以下代码向我的 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