Android의 라디오 그룹에서 라디오 버튼이 선택되었는지 확인하는 방법은 무엇입니까?
사용자가 페이지의 모든 세부 정보를 입력 / 선택해야한다는 유효성 검사를 설정해야합니다. 모든 필드가 비어 싶어 쇼 경우 Toast message to fill.
지금은 대한 일련의 검증이 필요 RadioButton
에 RadioGroup.
이 코드를 시도했지만 제대로 작동하지 않았다입니다. 나에게 올바른 방법을 제안하십시오. 감사합니다.
// get selected radio button from radioGroup
int selectedId = gender.getCheckedRadioButtonId();
// find the radiobutton by returned id
selectedRadioButton = (RadioButton)findViewById(selectedId);
// do what you want with radioButtonText (save it to database in your case)
radioButtonText = selectedRadioButton.getText().toString();
if(radioButtonText.matches(""))
{
Toast.makeText(getApplicationContext(), "Please select Gender", Toast.LENGTH_SHORT).show();
Log.d("QAOD", "Gender is Null");
}
else
{
Log.d("QAOD", "Gender is Selected");
}
하나만 확인 RadioButton
하려면 isChecked
기능을 사용할 수 있습니다.
if(radioButton.isChecked())
{
// is checked
}
else
{
// not checked
}
그리고 당신이 RadioGroup
사용할 수 있다면
if (radioGroup.getCheckedRadioButtonId() == -1)
{
// no radio buttons are checked
}
else
{
// one of the radio buttons is checked
}
사용 getCheckedRadioButtonId()
과 isChecked()
방법 만 있으면됩니다 .
if(gender.getCheckedRadioButtonId()==-1)
{
Toast.makeText(getApplicationContext(), "Please select Gender", Toast.LENGTH_SHORT).show();
}
else
{
// get selected radio button from radioGroup
int selectedId = gender.getCheckedRadioButtonId();
// find the radiobutton by returned id
selectedRadioButton = (RadioButton)findViewById(selectedId);
Toast.makeText(getApplicationContext(), selectedRadioButton.getText().toString()+" is selected", Toast.LENGTH_SHORT).show();
}
https://developer.android.com/guide/topics/ui/controls/radiobutton.html
확인해야하는 모든 radioButton에 isChecked () 함수 를 사용 하십시오.
RadioButton maleRadioButton, femaleRadioButton;
maleRadioButton = (RadioButton) findViewById(R.id.maleRadioButton);
femaleRadioButton = (RadioButton) findViewById(R.id.femaleRadioButton);
그런 다음 결과를 사용하여 if / else 케이스를 고려하십시오.
if (maleRadioButton.isChecked() || femaleRadioButton.isChecked()) {
Log.d("QAOD", "Gender is Selected");
} else {
Toast.makeText(getApplicationContext(), "Please select Gender", Toast.LENGTH_SHORT).show();
Log.d("QAOD", "Gender is Null");
}
이것을 사용해보십시오
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/standard_delivery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Standard_delivery"
android:checked="true"
android:layout_marginTop="4dp"
android:layout_marginLeft="15dp"
android:textSize="12dp"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Midnight_delivery"
android:checked="false"
android:layout_marginRight="15dp"
android:layout_marginTop="4dp"
android:textSize="12dp"
android:onClick="onRadioButtonClicked"
android:id="@+id/midnight_delivery"
/>
</RadioGroup>
이것은 자바 클래스입니다
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.standard_delivery:
if (checked)
Toast.makeText(DishActivity.this," standard delivery",Toast.LENGTH_LONG).show();
break;
case R.id.midnight_delivery:
if (checked)
Toast.makeText(DishActivity.this," midnight delivery",Toast.LENGTH_LONG).show();
break;
}
}
나는 다음을 사용했고 그것은 나를 위해 일했습니다. 라디오 그룹의 라디오 버튼이 선택되면 유효성 검사 함수가 true를 반환하고 제출이 이루어지는 부울 유효성 검사 함수를 사용했습니다. false가 반환되면 제출이 이루어지지 않고 "Select Gender"에 대한 토스트가 표시됩니다.
MainActivity.java
public class MainActivity extends AppCompatActivity { private RadioGroup genderRadioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Initialize Radio Group And Submit Button genderRadioGroup=findViewById(R.id.gender_radiogroup); AppCompatButton submit = findViewById(R.id.btnSubmit); //Submit Radio Group using Submit Button submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Check Gender radio Group For Selected Radio Button if(genderRadioGroup.getCheckedRadioButtonId()==-1){//No Radio Button Is Checked Toast.makeText(getApplicationContext(), "Please Select Gender", Toast.LENGTH_LONG).show(); }else{//Radio Button Is Checked RadioButton selectedRadioButton = findViewById(genderRadioGroup.getCheckedRadioButtonId()); gender = selectedRadioButton == null ? "" : selectedRadioButton.getText().toString().trim(); } //Validate if (validateInputs()) { //code to proceed when Radio button is checked } } } //Validation - No process is initialized if no Radio button is checked private boolean validateInputs() { if (genderRadioGroup.getCheckedRadioButtonId()==-1) { return false; } return true; } }
activity_main.xml에서 :
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/gender"/> <RadioGroup android:id="@+id/gender_radiogroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/male"/> <RadioButton android:id="@+id/female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/female""/> </RadioGroup> <android.support.v7.widget.AppCompatButton android:id="@+id/btnSubmit" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/submit"/> </LinearLayout>
성별 라디오 버튼을 선택하지 않으면 진행할 코드가 실행되지 않습니다.
이게 도움이 되길 바란다.
isChecked (); 메소드를 사용해보십시오.
처럼,
selectedRadioButton.isChecked ()-> 부울을 반환합니다.
]을 참조 여기에 라디오 버튼에 대한 자세한 내용은
내 라디오 버튼의 ID를 checkedRadioButton
사용하여 사용한 ID와 비교했습니다.mRadioGroup.getCheckedRadioButtonId()
내 코드는 다음과 같습니다.
mRadioButton1=(RadioButton)findViewById(R.id.first);
mRadioButton2=(RadioButton)findViewById(R.id.second);
mRadioButton3=(RadioButton)findViewById(R.id.third);
mRadioButton4=(RadioButton)findViewById(R.id.fourth);
mNextButton=(Button)findViewById(R.id.next_button);
mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedId=mRadioGroup.getCheckedRadioButtonId();
int n=0;
if(selectedId==R.id.first){n=1;}
else if(selectedId==R.id.second){n=2;}
else if(selectedId==R.id.third){n=3;}
else if(selectedId==R.id.fourth){n=4;}
//. . . .
}
내 대답은 문서 에 따라 잘 작동합니다.
1) In xml file include android:onClick="onRadioButtonClicked"
as shown below:
<RadioGroup
android:id="@+id/rg1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<RadioButton
android:id="@+id/b1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="onCreateOptionsMenu()"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/b2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="onCreateMenu()"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
2) In Java file implement onRadioButtonClicked
method outside onCreate()
method as shown below:
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.b1:
if (checked)
{
Log.e("b1", "b1" );
break;
}
case R.id.b2:
if (checked)
break;
}
}
rgrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch(i) {
case R.id.type_car:
num=1;
Toast.makeText(getApplicationContext()," Car",Toast.LENGTH_LONG).show();
break;
case R.id.type_bike:
num=2;
Toast.makeText(getApplicationContext()," Bike",Toast.LENGTH_LONG).show();
break;
}
}
});
'code' 카테고리의 다른 글
HTML 엔티티를 디코딩하는 자바 스크립트 (0) | 2020.11.29 |
---|---|
Bootstrap 3의 도구 설명에 줄 바꿈 추가 (0) | 2020.11.29 |
Visual Studio 배포 프로젝트-배포 된 실행 파일에 대한 바로 가기 만들기 (0) | 2020.11.29 |
'동적 표현식을 컴파일하는 데 필요한 하나 이상의 유형을 찾을 수 없습니다.'라는 메시지가 표시되는 이유는 무엇입니까? (0) | 2020.11.29 |
문자열이 파이썬에서 한 문자로 구성되어 있는지 효율적으로 확인 (0) | 2020.11.29 |