Intereting Posts

Изменение сводки CheckBoxPreference на основе проверенного состояния

Я пытаюсь создать приложение, где сводка предпочтений изменяется в зависимости от проверенного состояния CheckBoxPreference .

Я не совсем уверен, как запросить предпочтения, поскольку старый добрый isChecked() не будет работать.

Было бы намного проще, если бы вы просто использовали android:summaryOff и android:summaryOn в вашей настройке предпочтений. Не требуется код. Например:

 <CheckBoxPreference android:enabled="true" android:key="alerts" android:title="Alerts" android:summaryOn="You will get notified when something interesting happens" android:summaryOff="You will not be notified" /> 

См .: http://developer.android.com/reference/android/preference/CheckBoxPreference.html.

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