2017-09-27 1 views
1

사용자가 라디오 그룹에서 남성, 여성 또는 분류되지 않은 각각을 선택할 때 문자열 변수 값을 1,2,3으로 설정하려고합니다.라디오 그룹에서 라디오 버튼을 선택하면 변수 값 설정

지금은 이런 식으로 일을 오전하지만 난 라디오 버튼을 선택하더라도 그것은 null 등의 변수 값을 설정

코드 :

RadioGroup genderGroup; 
RadioButton male, female, unclassified; 
String strGender; 
genderGroup = findViewById(R.id.genderGroup); 
male = findViewById(R.id.genderMale); 
female = findViewById(R.id.genderFemale); 
unclassified = findViewById(R.id.genderUnclassified); 

if (genderGroup.getCheckedRadioButtonId() == -1) { 
     strGender = null;   //no buttons selected 
    } else { 
     if (male.isChecked()) {  // one of the radio buttons is checked 
      strGender = "1"; 
     } else if (female.isChecked()) { 
      strGender = "2"; 
     } else if (unclassified.isChecked()) { 
      strGender = "3"; 
     } 
    } 

내가 어떤 라디오 버튼을 선택한 후 값을 출력 그것은 null을 보여줍니다. 이 작업을 수행하는 방법을 알고 있다면 감사합니다. 감사합니다.

해결 된 Nilesh에게 감사드립니다. 올바른 코드는 다음과 같습니다

genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 

     if (checkedId == R.id.genderMale) { 
      strGender = "1"; 

     } else if (checkedId == R.id.genderFemale) { 
      strGender = "2"; 
     } 

    } 
}); 

답변

1

당신이 체크 된 라디오 버튼이 그룹에서 변경 될 때 호출되는 콜백에 대한 RadioGroup.OnCheckedChangeListener

인터페이스 정의를 사용해야합니다. 아래 그림과 같이

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     if (checkedId == R.id.genderMale) { 
      strGender = "1"; 
     } else if (checkedId == R.id.genderFemale) { 
      strGender = "2"; 
     } 
    } 
}); 
+0

최고를보십시오! 감사합니다 @ Nilesh – KhanStan99

+0

감사합니다 @ KhanStan99 당신을 도울 행복 –

1
genderGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     // find which radio button is selected 
     if(checkedId == R.id.genderMale) { 
      strGender = "1"; 
     } else if(checkedId == R.id.genderFemale) { 
      strGender = "2"; 
     } else { 
      strGender = "3"; 
     } 
    } 
}); 
1

이 처리해야합니다 :

// Is the button now checked? 
boolean checked = ((RadioButton) view).isChecked(); 

// Check which radio button was clicked 
switch(view.getId()) { 
    case R.id.genderMale: 
     if (checked) 
      strGender = 1; 
     break; 
    case R.id.genderFemale: 
     if (checked) 
      strGender = 2; 
     break; 
    case R.id.genderUnclassified: 
     if (checked) 
      strGender = 3; 
     break; 
} 
0
public class MainActivity extends Activity { 
    RadioGroup genderGroup; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     RadioGroup genderGroup = (RadioGroup) findViewById(R.id.radioGroup1); 

     genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 
     { 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 
       switch(checkedId){ 
        case R.id.radio0: 
         // do operations specific to this selection 
          strGender = "1"; 
         break; 
        case R.id.radio1: 
         // do operations specific to this selection 
          strGender = "2"; 
         break; 
        case R.id.radio2: 
         // do operations specific to this selection 
           strGender = "3"; 
         break; 
       } 
      } 
     }); 
    } 
} 
1

String strGender =" "; 

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     switch(checkedId){ 
      case R.id.genderMale: 
       strGender = "1"; 
       break; 
      case R.id.genderFemale: 
       strGender = "2"; 
       break; 
      case R.id.genderUnclassified: 
       strGender = "3"; 
       break; 
     } 
    } 
}); 
관련 문제