如何获取单选按钮的ID并转换为字符串?

时间:2014-05-30 02:59:36

标签: java android android-studio

我在Android Studio工作,我正在尝试获取所选单选按钮的ID,然后将ID存储在字符串中。这可能吗?

我尝试用.getId()替换下面的.getText()方法,但它不会让我将它存储为字符串:

    RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int checkedId)
        {
            RadioButton checkedRadioButton = (RadioButton) findViewById(checkedId);
            String text = checkedRadioButton.getText().toString();
            Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
        }
    });

2 个答案:

答案 0 :(得分:0)

getId()会返回int - 与所有primitive types一样,没有toString()(或任何其他)方法。这是因为,虽然所有对象都有toString()方法,但原语不是对象 - 但幸运的是,Java为wrapper classes提供了 所有原始类型的对象。在int的情况下,相应的包装类称为Integer

 String text = (Integer)checkedRadioButton.getId().toString();

在这里,我们明确地将int返回的getId()投射到Integer对象,然后在该对象上调用toString()

或者,您可以利用autoboxing让Java处理"包装"为你自动:

Integer id = checkedRadioButton.getId();
String text = id.toString();

请注意,getId()仍然会返回int,但是因为您将id变量声明为Integer,所以Java"框"自动返回其包装类的值 - 因此" autoboxing"。

您还可以使用静态Integer.toString()方法:

String text = Integer.toString(checkedRadioButton.getId())

但请注意,在引擎盖下,此处正在执行相同的操作。

答案 1 :(得分:0)

除了@drewmore解决方案,你也可以使用

String text = String.valueOf(checkedRadioButton.getId());