在我的应用程序中,一旦用户提供了三个输入,AsyncTask就会启动,它会连接到服务器并获取另外两个字段的信息。一旦AsyncTask完成,我想在打开的设置页面中设置这两个接收值。
我搜索并尝试了此代码,但没有更新已从服务器获取其值的字段的摘要。
问题是我无法将从服务器接收的值作为摘要设置为EditTextPreference。如果我重新打开settngs页面,它会显示值,而不是不重新打开。
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
updatePreference(key);
}
private void updatePreference(String key) {
if (key.equals("id")) {
Preference preference = findPreference(key);
if (preference instanceof EditTextPreference) {
EditTextPreference editTextPreference = (EditTextPreference) preference;
if (editTextPreference.getText().trim().length() > 0) {
editTextPreference.setSummary(editTextPreference.getText());
} else {
editTextPreference.setSummary("");
}
}
} else if (key.equals("sclass")) {
Preference preference = findPreference(key);
if (preference instanceof EditTextPreference) {
EditTextPreference editTextPreference = (EditTextPreference) preference;
if (editTextPreference.getText().trim().length() > 0) {
editTextPreference.setSummary(editTextPreference.getText());
} else {
editTextPreference.setSummary("");
}
}
}
}https://stackoverflow.com/questions/41521668
复制相似问题