我正在实现一个登录界面,我有两个复选框:男性和女性。现在我希望用户只能选择其中一个复选框。我的.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);
}
无论如何这都行不通。我是一个完全的初学者。你可以帮帮我吗?
答案 0 :(得分:2)
您应该使用Radio Button而不是复选框。
答案 1 :(得分:0)
当使用checMale.setEnabled(false);
或checFemale.setEnabled(false);
同时确保在未选中复选框时启用已禁用的。
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);
}
}
});
确保在用户进行之前至少选择了其中一个。收音机按钮是一个更好的主意。