Ich muss die Validierung festlegen, dass der Benutzer alle Details auf einer Seite ausfüllen / auswählen muss. Wenn alle Felder leer zeigen wollen , sind Toast message to fill.
Jetzt brauche ich Set - Validierung für RadioButton
in der RadioGroup.
ich diesen Code versucht , aber funktionierte nicht richtig. Schlagen Sie mir den richtigen Weg vor. Danke.
// 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");
}
android
radio-button
radio-group
Srihari
quelle
quelle
Antworten:
Wenn Sie nur eine überprüfen möchten, können
RadioButton
Sie dieisChecked
Funktion verwendenif(radioButton.isChecked()) { // is checked } else { // not checked }
und wenn Sie eine haben
RadioGroup
, können Sie verwendenif (radioGroup.getCheckedRadioButtonId() == -1) { // no radio buttons are checked } else { // one of the radio buttons is checked }
quelle
Alles was Sie tun müssen, ist Gebrauch
getCheckedRadioButtonId()
undisChecked()
Methode,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
quelle
Verwenden Sie die Funktion isChecked () für jeden RadioButton, den Sie überprüfen müssen.
Verwenden Sie dann das Ergebnis für Ihre if / else-Fallüberlegung.
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"); }
quelle
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; } } });
quelle
versuche dies zu benutzen
<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>
Das ist Java-Klasse
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; } }
quelle
Ich habe folgendes verwendet und es hat bei mir funktioniert. Ich habe eine boolesche Validierungsfunktion verwendet, bei der, wenn ein Optionsfeld in einer Radiogruppe aktiviert ist, die Validierungsfunktion true zurückgibt und eine Übermittlung erfolgt. Wenn false zurückgegeben wird, erfolgt keine Übermittlung und es wird ein Toast auf "Geschlecht auswählen" angezeigt:
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; } }
In 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>
Wenn kein Optionsfeld für das Geschlecht ausgewählt ist, wird der Code zum Fortfahren nicht ausgeführt.
Ich hoffe das hilft.
quelle
Versuchen Sie, die Methode isChecked () zu verwenden.
Mögen,
Refere hier für weitere Details zu dem Radioknopf
quelle
Ich benutzte die ids meines Radiobuttons mit der ID des zu vergleichen ,
checkedRadioButton
dass ich habe mitmRadioGroup.getCheckedRadioButtonId()
Hier ist mein Code:
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;} //. . . . }
quelle
Meine Antwort ist gemäß der Dokumentation , die gut funktioniert.
1) In die XML-Datei einschließen
android:onClick="onRadioButtonClicked"
wie unten gezeigt:<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 einer Java-Datei implementieren Sie eine
onRadioButtonClicked
Methode außerhalb deronCreate()
Methode wie unten gezeigt: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; } }
quelle
mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { if (mRadioButtonMale.isChecked()) { text = "male"; } else { text = "female"; } } });
ODER
mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { if (mRadioButtonMale.isChecked()) { text = "male"; } if(mRadioButtonFemale.isChecked()) { text = "female"; } } });
quelle