从属于无线电组的单选按钮获取文本



这是我在我的类中有两个方法,我希望返回附加到每个单选按钮的文本字符串:

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中,它就工作了。

我实际上不知道你在用你的代码做什么,但我认为这可能有帮助

访问Android从所选单选按钮获取值,并查看答案。

为什么不直接获取id然后获取它的文本?即使在同一组中,他们也有唯一的id。就像@Turuu的评论;而是toast,放在string

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

这只是一个例子

最新更新