2012-07-31 28 views
6

我正嘗試創建一個應用程序,其中首選摘要基於CheckBoxPreference的選中狀態進行更改。更改基於選中狀態的CheckBoxPreference摘要

我不太清楚如何查詢首選項,因爲舊的isChecked()不起作用。如果你只是使用android:summaryOffandroid:summaryOn在您的喜好佈局

+0

如何'器isChecked()'不工作?發佈您的代碼。 – biegleux 2012-07-31 12:58:39

回答

1
public class Preferences extends PreferenceActivity 
     implements OnSharedPreferenceChangeListener { 

    public final static String KEY_CHECK = "check"; 
    private CheckBoxPreference mCheckBoxPreference; 

    @Override 
    public void onCreate(Bundle savedInstance) { 
     super.onCreate(savedInstance); 
     addPreferencesFromResource(R.xml.preferences); 
     mCheckBoxPreference = (CheckBoxPreference) getPreferenceScreen() 
      .findPreference(KEY_CHECK); 
    } 

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

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

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
      String key) { 
     if (key.equals(KEY_CHECK)) { 
      if (mCheckPreference.isChecked()) { 
       mCheckPreference.setSummary(mCheckPreference.getEntry()); 
      } 
     } 
    } 
} 
+0

你的代碼給了我錯誤,說onSharedPreferenceChangeListner是一個未知的實體。這是爲什麼? – SweSnow 2012-07-31 13:21:53

+0

你是否已經導入了'import android.content.SharedPreferences.OnSharedPreferenceChangeListener;'?或者嘗試使用'SharedPreferences.OnSharedPreferenceChangeListener'來代替。 – biegleux 2012-07-31 13:31:25

相關問題