2017-01-20 15 views
5

lý do tại sao tôi không thể kiểm tra cùng một radio sau khi tôi bỏ chọn nó theo chương trình, khi tôi nhấp vào nút tiếp theo, trừ khi tôi kiểm tra một radio khác.Không thể kiểm tra nút radio

Đây là mã mà unchecks radiobutton:

 if(q.trim() != null || q.trim() != ""){ 
      questionView.setText(q); 
      r1.setChecked(false); 
      r2.setChecked(false); 
      r3.setChecked(false); 

      r1.clearFocus(); 
      r2.clearFocus(); 
      r3.clearFocus(); 

      r1.setText(varNames.get("ra0")); 
      r2.setText(varNames.get("ra1")); 
      r3.setText(varNames.get("ra2")); 
     } 

Và đây là nơi mà tôi cố gắng kiểm tra xem nó:

public void questionClicked(View view) { 

    boolean checked = ((RadioButton) view).isChecked(); 

    switch(view.getId()) { 
     case R.id.firstQuestion: 
      if(!checked) { 
       r1.setChecked(true); 
      } 
      getAnswer(R.id.firstQuestion); 

      break; 
     case R.id.secondQuestion: 
      if(!checked) { 
       r2.setChecked(true); 
      } 
      getAnswer(R.id.secondQuestion); 

      break; 
     case R.id.thirdQuestion: 
      if(!checked) { 
       r3.setChecked(true); 
      } 
      getAnswer(R.id.thirdQuestion); 

      break; 
    } 
} 
+0

Tôi nghĩ rằng bạn không cần phải sử dụng .setChecked vào bất kỳ nút radio nào, bởi vì mặc định khi chúng được nhấp, chúng sẽ được chọn/bỏ chọn. Hãy thử để loại bỏ các dòng mà bạn .setCheck các radiobuttons. –

+0

Có, tôi đã thử nhưng không hoạt động. – Besart

Trả lời

0

Tôi nghĩ rằng bạn nên thực hiện một phương pháp thanh toán bù trừ kiểm tra nút radio. Và gọi nó mỗi khi bạn nhấp vào nút "tiếp theo". Dưới đây là ví dụ:

private void clearcheck(){   
     if(q.trim() != null || q.trim() != ""){ 
      questionView.setText(q); 
      r1.setChecked(false); 
      r2.setChecked(false); 
      r3.setChecked(false); 

      r1.clearFocus(); 
      r2.clearFocus(); 
      r3.clearFocus(); 

      r1.setText(varNames.get("ra0")); 
      r2.setText(varNames.get("ra1")); 
      r3.setText(varNames.get("ra2")); 
     } 
} 

Gọi nó như clearcheck(); trong onclick của nút tiếp theo của bạn.

Các vấn đề liên quan