2015-03-24 2 views
1

Я использую экран предпочтений в макете. Однако, когда я могу отметить все поля сразу. Как я могу его использовать, так что только один ящик помечается одновременно.разрешить только один флажок, отмеченный одновременно андроидом

?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 
    <CheckBoxPreference 
    android:key="colour_white" 
    android:title="White" 

    android:defaultValue="true" /> 

    <CheckBoxPreference 
    android:key="colour_red" 
    android:title="Red" 


    /> 
+4

Будет ли переключатель более подходящим для вашего прецедента? –

+0

add android: dependency: "KEY_OF_PARENT" для детей – Amir

ответ

0

Вы можете управлять им в java. Обработайте событие CheckBoxPreference и снимите флажки, кроме тех, которые были уволены событием клика.

CheckBoxPreference cbp_white = (CheckBoxPreference) findPreference("colour_white"); 
CheckBoxPreference cbp_red = (CheckBoxPreference) findPreference("colour_red"); 

cbp_white.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {    
      public boolean onPreferenceChange(Preference preference, Object newValue) { 
       //write your logic here 
       //Example: cbp_red.setChecked(false); 
       return true; 
      } 
     }); 

Аналогичным образом событие изменения рукоятки других флажков.

+0

Я пробовал это, но не смог. .. colour_white.setChecked (false); ' .. Не работает. Как я могу правильно обрабатывать CheckBoxPreference, не могли бы вы дать мне больше информации? – joshua

+0

Отметьте обновленный ответ –

2

Вы должны использовать радиокнопки и группы радиостанций. Флажки означают, чтобы быть избранным.

Смежные вопросы