简体   繁体   English

一次只允许选中一个复选框

[英]allow only one checkbox ticked at a time android

I am using preference screen in layout.. However when I can tick all boxes at once.. How can I have it so only 1 box is ticked at a time.. 我在布局中使用首选项屏幕。但是,当我可以同时勾选所有框时。.我如何拥有它,所以一次只勾选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"


     />

You should use radio buttons and radio groups. 您应该使用单选按钮和单选组。 Check boxes are meant to be multi select. 复选框意味着要多选择。

You can control it in java. 您可以在Java中对其进行控制。 Handle CheckBoxPreference click event and uncheck all checkboxes except one which has been fired the click event. 处理CheckBoxPreference click事件,并取消选中除已触发click事件的复选框以外的所有复选框。

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

Similarly handle change event of other checkboxes. 类似地处理其他复选框的更改事件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM