簡體   English   中英

更新Post SyncTask上的EditTextPreference摘要

[英]Update EditTextPreference Summary on Post SyncTask

在我的應用程序中,一旦用戶提供三個輸入, 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);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM