Как получить строковое значение RadioButton.

Nasir ALAM спросил: 28 марта 2018 в 04:14 в: java

У меня есть Radiogroup и внутри двух переключателей есть. Но я не могу получить строковое значение как переключателя.

Вот мой код: -

public  void checkFieldsForEmptyValue(){
        phonenumber=phone_number.getText().toString();
        String password=Password.getText().toString();
        RadioGroup radioGroup=(RadioGroup) findViewById(R.id.rg_lgoinscreen);
        RadioButton radioButton_student=(RadioButton)findViewById(R.id.Radio_button_student);
        RadioButton radioButton_teacher=(RadioButton)findViewById(R.id.Radio_button_teacher);
        String radio_button_student=Integer.toString(radioButton_student.getId());        if(phonenumber.length() > 0 && password.length() > 0 && radio_button_student.length()>0)
        {
            Toast.makeText(this, "Else working", Toast.LENGTH_LONG).show();
         login.setEnabled(true);
        }

Вот файл XML

<RadioGroup
        android:id="@+id/rg_lgoinscreen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:layout_margin="1dp"
        android:layout_below="@id/login_password"
        android:orientation="horizontal"
        >
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@color/white"
            android:text="Student"
            android:textColor="@color/white"
            android:id="@+id/Radio_button_student"
            android:layout_marginLeft="19dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:buttonTint="@color/white"
            android:text="Teacher"
            android:textColor="@color/white"
            android:id="@+id/Radio_button_teacher"/>
    </RadioGroup>

2 ответа

manhtuan21 ответил: 28 марта 2018 в 04:29

Я не знаю, почему вы используете

Integer.toString(radioButton_student.getId())

Вам просто нужна строка переключателя, тогда просто используйте это:

radioButton_student.getText()

А если вам нужно проверить, включена ли опция radioButton, используйте:

radioButton_student.isChecked()
Mayank Bhatnagar ответил: 28 марта 2018 в 04:31

Используйте этот код

public  void checkFieldsForEmptyValue(){
    phonenumber=phone_number.getText().toString();
    String password=Password.getText().toString();
    RadioGroup radioGroup=(RadioGroup) findViewById(R.id.rg_lgoinscreen);
    RadioButton radioButton_student=(RadioButton)findViewById(R.id.Radio_button_student);
    RadioButton radioButton_teacher=(RadioButton)findViewById(R.id.Radio_button_teacher);` int selectedId = radioGroup.getCheckedRadioButtonId();
  radioButton = (RadioButton) findViewById(selectedId);
   String radio_button_student=Integer.toString(radioButton.getText());    if(phonenumber.length() > 0 && password.length() > 0 && radio_button_student.length()>0)
    {
        Toast.makeText(this, "Else working", Toast.LENGTH_LONG).show();
     login.setEnabled(true);
    }