Получение текста из радиокнопки, которая является частью радиогруппы

В моем классе есть два метода, с помощью которых я надеюсь вернуть строку текста, прикрепленную к каждому переключателю:

public String toppingGroupCheck(RadioGroup toppingGroup, int checkedId){
        switch (checkedId){
            case R.id.toppingRadio1:
                checkedId = toppingGroup.getCheckedRadioButtonId();
                selectedToppingRad = (RadioButton)findViewById(checkedId);
                selectedTopping = selectedToppingRad.getText().toString();
            case R.id.toppingRadio2:
                checkedId = toppingGroup.getCheckedRadioButtonId();
                selectedToppingRad = (RadioButton)findViewById(checkedId);
                selectedTopping = selectedToppingRad.getText().toString();
            case R.id.toppingRadio3:
                checkedId = toppingGroup.getCheckedRadioButtonId();
                selectedToppingRad = (RadioButton)findViewById(checkedId);
                selectedTopping = selectedToppingRad.getText().toString();
            case R.id.toppingRadio4:
                checkedId = toppingGroup.getCheckedRadioButtonId();
                selectedToppingRad = (RadioButton)findViewById(checkedId);
                selectedTopping = selectedToppingRad.getText().toString();
            case R.id.toppingRadio5:
                checkedId = toppingGroup.getCheckedRadioButtonId();
                selectedToppingRad = (RadioButton)findViewById(checkedId);
                selectedTopping = selectedToppingRad.getText().toString();
        }
        return selectedTopping;
    }

    public String sideGroupCheck(RadioGroup sidesGroup, int checkedId){
        switch (checkedId){
            case R.id.sideRadio1:
                checkedId = sidesGroup.getCheckedRadioButtonId();
                selectedSideRad = (RadioButton)findViewById(checkedId);
                selectedSide = selectedSideRad.getText().toString();
            case R.id.sideRadio2:
                checkedId = sidesGroup.getCheckedRadioButtonId();
                selectedSideRad = (RadioButton)findViewById(checkedId);
                selectedSide = selectedSideRad.getText().toString();
            case R.id.sideRadio3:
                checkedId = sidesGroup.getCheckedRadioButtonId();
                selectedSideRad = (RadioButton)findViewById(checkedId);
                selectedSide = selectedSideRad.getText().toString();
        }
        return selectedSide;
    }

Затем у меня есть это, которое должно использовать эти методы и возвращать строку в переменные tmpTopping и tmpSide:

public void submitForm(View view){
        Intent submitform = new Intent(this, submitForm.class);

        String tmpTopping = toppingGroupCheck(toppingGroup, checkedId);
        submitform.putExtra("topping",tmpTopping);
        String tmpSide = sideGroupCheck(sidesGroup, checkedId);
        submitform.putExtra("side",tmpSide);
        startActivity(submitform);
    }

Может ли кто-нибудь объяснить, что я, возможно, делаю неправильно, или лучший способ сделать это? Спасибо.

ОБНОВЛЕНИЕ: я пытался сделать:

    checkedId = toppingGroup.getCheckedRadioButtonId();
    selectedToppingRad = (RadioButton)findViewById(checkedId);
    String topping = selectedToppingRad.getText();

но он продолжал говорить, что "selectedToppingRad.getText()" будет возвращать последовательность символов вместо строки. Вместо этого я просто вставил «selectedToppingRad.getText()» прямо в putExtra, и это сработало.


person David Corneliusen    schedule 07.10.2016    source источник


Ответы (1)


я на самом деле не знаю, что вы делаете со своими кодами, но я думаю, что это может помочь

Посетите Android получает значение от выбранного переключателя и найдите ответы.

почему бы просто не получить идентификатор, а затем получить его текст? у них есть уникальные идентификаторы даже в одной группе. Нравится комментарий от @Turuu; но вместо того, чтобы тост, положить его в строку

radioButton = (RadioButton) findViewById(checkedId);
String radioButtonText = radioButton.getText();

Я все равно просто образец

person jace    schedule 07.10.2016
comment
Спасибо за ответ. Да, я смотрел на это один раз, но, возможно, я слишком много думал. - person David Corneliusen; 07.10.2016