2014-11-23 86 views
0

我正在實現登錄界面,並且我有兩個複選框:男性和女性。現在我想讓用戶只能選擇其中一個複選框。我的.java文件是這樣的:Android開發人員關於單選框複選框

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

如果用戶識別兩個性別或兩者都不是!? – 2014-11-23 17:22:38

回答

0

要麼使用Radio Buttons或禁用其他複選框,當選擇其中一個使用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); 
      } 
     } 
}); 

確保在用戶進行操作前至少選擇了其中一個選項。單選按鈕是一個更好的主意。

+0

謝謝。非常好的建議! – glhclhy 2014-11-23 18:19:16

+0

你能告訴我爲什麼我的代碼不起作用嗎?當我選擇一個時,另一個不被禁止。 – glhclhy 2014-11-23 18:20:26

+0

@glhclhy檢查編輯。 – Slay 2014-11-23 22:50:26

2

您應該使用Radio Button而不是您的複選框。

+0

謝謝!我會嘗試的。 – glhclhy 2014-11-23 18:18:45