2014-09-24 54 views
1

在我的設置活動中,在選擇ListPreference以升序或降序排列結果列表後,所選的值不會出現在ListPreference上。這是我的代碼這個列表首選項。我還附上了這個問題的截圖。請讓我知道什麼是問題,我做了什麼錯誤? <ListPreference android:title="@string/pref_calllog_sorting" android:key="@string/pref_calllog_sorting_descending" android:defaultValue="@string/pref_calllog_sorting_descending" android:entryValues="@array/pref_calllog_sorting_values" android:entries="@array/pref_calllog_sorting_options"/>Screenshot for ListPreferenceListPreference不顯示選定的值

回答

2

需要調用bindPreferenceSummaryToValue(findPreference(getString(R.string.pref_calllog_sorting_descending)));在onPostCreate(Bundle savedInstanceState)方法中。在應用程序中添加SettingActivity時,自動創建bindPreferenceSymmaryToValue(首選首選項)方法。

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    setupActionBar(); 
    bindPreferenceSummaryToValue(findPreference(
      getString(R.string.pref_calllog_sorting_descending))); 
} 

private static void bindPreferenceSummaryToValue(Preference preference) { 
    // Set the listener to watch for value changes. 
    preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); 

    // Trigger the listener immediately with the preference's 
    // current value. 
    sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, 
      PreferenceManager 
        .getDefaultSharedPreferences(preference.getContext()) 
        .getString(preference.getKey(), "")); 
}