gpt4 book ai didi

java - 更新 Post SyncTask 上的 EditTextPreference 摘要

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:02 24 4
gpt4 key购买 nike

在我的应用程序中,一旦用户提供三个输入,AsyncTask 就会启动,连接到服务器并获取另外两个字段的信息。一旦 AsyncTask 完成,我想在打开的设置页面中设置这两个接收到的值。

我搜索并尝试了此代码,但没有更新从服务器获取值的字段的摘要。

问题是我无法将从服务器接收到的值设置为 EditTextPreference 的摘要。如果我重新打开设置页面,它会在不重新打开的情况下显示值。

@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("");
}
}
}
}

最佳答案

创建一个监听器并在 onCreate 中调用它

sharedPrefYourObj.registerOnSharedPreferenceChangeListener(t‌​his);

尝试注册您的监听器onResume并注销它onPause,而不是onCreate!

示例:

  protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}

protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}

关于java - 更新 Post SyncTask 上的 EditTextPreference 摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com