Intereting Posts
Плагин Eclipse github: ошибка с фиксацией изменений – запись не найдена по пути Добавление нескольких сертификатов SSL в Android KeyStore не работает. (Из файла ресурсов) Как установить жирный заголовок в панели действий? Является ли Robotium надежным для тестирования того, как начинаются быстрые действия и фрагменты? Принудительный планшет для использования ресурсов xhdpi Сборка Android NDK Приложение Android в nodejs Андроидный хром для закрытия вкладок браузера Может ли РАЗЛИЧНЫЕ IntentServices работать параллельно? Фатальный сигнал 11 (SIGSEGV) Некоторые пользователи не могут установить приложение, так как installLocation добавляется в манифест Привязка данных Android (аналогично WPF)? Как добавить зависимость .aar в библиотечном модуле? Доступ к локальному хосту с мобильного телефона Кнопка «Переопределение дома» для приложения «Замена домашнего автомобиля»

Настройки 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; } });