CheckBoxPreference Summary Modified Based on Verified State

I am trying to create an application in which the summary of preferences changes depending on the status of the CheckBoxPreference check.

I'm not quite sure how to request preferences, since the good old isChecked() will not work.

+6
source share
2 answers

It would be much simpler if you used android:summaryOff and android:summaryOn in your preference setting. No code required. For instance:

 <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" /> 

See: http://developer.android.com/reference/android/preference/CheckBoxPreference.html

+17
source
 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()); } } } } 
+1
source

Source: https://habr.com/ru/post/921759/


All Articles