Настройки Android Checkbox

Я не могу найти какие-либо руководства по настройке флажка. Я могу использовать listpreference, но я не могу использовать опцию checkbox. На данный момент я хочу, чтобы, если пользователь устанавливает на чекбоксе, тост-msg говорит «true», и если он устанавливает его, тост-msg говорит «false». Пока у меня это:

preferences.xml:

<CheckBoxPreference android:title="Show Call UI" android:defaultValue="true" android:summary="Show Call Interface when clicking call button" android:key="checkboxPref" /> 

EditPreferences.java:

 public class EditPreferences extends PreferenceActivity { String listPreference; boolean checkboxPreference; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } public void onStart(Intent intent, int startId) { getPrefs(); } private void getPrefs() { SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(getBaseContext()); listPreference = prefs.getString("listPref", "nr1"); checkboxPreference = prefs.getBoolean("checkboxPref", true); } } 

Редактировать: Решение благодаря Дэвиду Каунту:

 checkboxPreference. setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { if (newValue.toString().equals("true")) { Toast.makeText(getApplicationContext(), "CB: " + "true", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "CB: " + "false", Toast.LENGTH_SHORT).show(); } return true; } }); 

Solutions Collecting From Web of "Настройки Android Checkbox"

Вам нужно добавить слушателя в Предпочтение в методе onCreate

  final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxPref"); checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { Log.d("MyApp", "Pref " + preference.getKey() + " changed to " + newValue.toString()); return true; } }); 

Вы можете установить значение флажка в логическое. Это может быть более безопасным и более расширяемым, чем проверка значения toString ().

 final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxPref"); checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { if(newValue instanceof Boolean){ Boolean boolVal = (Boolean)newValue; } return true; } });