Android开发人员关于单选复选框

时间:2014-11-23 17:21:37

标签: android checkbox view

我正在实现一个登录界面,我有两个复选框:男性和女性。现在我希望用户只能选择其中一个复选框。我的.java文件是这样的:

    public void onCheckboxClicked(View view) {
          checMale = (CheckBox)findViewById(R.id.Male_che);
          checFemale = (CheckBox)findViewById(R.id.Female_che);

    View.OnClickListener maleChec = new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                sex = "Male";
                checFemale.setChecked(false);
            }
    };
    View.OnClickListener femaleChec = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                sex = "Female";
                checMale.setChecked(false);
            }
    };

    checMale.setOnClickListener(maleChec);
    checFemale.setOnClickListener(femaleChec);
}       

无论如何这都行不通。我是一个完全的初学者。你可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

您应该使用Radio Button而不是复选框。

答案 1 :(得分:0)

当使用checMale.setEnabled(false);checFemale.setEnabled(false);

选择一个时,使用Radio Buttons或禁用其他复选框

同时确保在未选中复选框时启用已禁用的。

checMale.setOnClickListener(new View.OnClickListener(){

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
            sex = "Male";
            if(checMale.isChecked()){
                checMale.setChecked(false);
                checFemale.setEnabled(true);
            }else{
                checMale.setChecked(true);
                checFemale.setEnabled(false);
           }  
        }
});
checFemale.setOnClickListener(new View.OnClickListener(){ {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
            sex = "Female";
            if(checFemale.isChecked()){
               checFemale.setCheck(false);
               checkMale.setEnabled(true);
            }
            else{
               checFemale.setCheck(true);
               checkMale.setEnabled(false);
            } 
        }
});

确保在用户进行之前至少选择了其中一个。收音机按钮是一个更好的主意。