获取按钮的字符串ID

时间:2013-12-17 08:30:04

标签: java android eclipse radio-button

我的按钮有一个字符串id

<RadioButton 
android:id="@+id/Dirty" 
android:text="Very Dirty" 

我想在我的代码中使用名称Dirty但我不能使用get Text,因为单选按钮的显示名称与我需要的不同,并且获取Id返回一个整数。

有关如何从我选择的单选按钮中获取“脏”的任何建议吗?

感谢。

代码(来自评论)

RadioButton rb = (RadioButton) findViewById(selectedId); 
String sel = (String) rb.getText();

7 个答案:

答案 0 :(得分:6)

使用getResourceEntryName方法:

    RadioButton myButton = (RadioButton) findViewById(R.id.button1);
    String s = myButton.getResources().getResourceEntryName(R.id.button1);

答案 1 :(得分:0)

获取组件的名称使用getName()。我认为这会有所帮助吗?

答案 2 :(得分:0)

试试这个 将标记设置为单选按钮并在java类中获取该标记

XML

android:tag="Dirty"

的Src

rb.getTag().toString();

答案 3 :(得分:0)

解决方法是在你的单选按钮上添加一个与id同名的标签(除了id):

<RadioButton
    android:id="@+id/Dirty"
    android:tag="Dirty"
    android:text="Very Dirty"
    />

然后在您的代码中,您可以将标记作为String:

RadioButton radioButton = (RadioButton)findViewById(R.id.Dirty);
String tag = (String) radioButton.getTag();

因此,给您的单选按钮添加标签会带来不便,这与他们的ID相同。

答案 4 :(得分:0)

如果您想使用字符串引用按钮,则应使用Tag代替Id

答案 5 :(得分:0)

我认为你可以找到答案here

这一个

getResources().getResourceName(int resid);

似乎对你有用。

答案 6 :(得分:-1)

试试这个:

int selectedRdBtnId = radioGroup.getCheckedRadioButtonId();
radioButton = (RadioButton) findViewById(selectedRdBtnId);
String rbText = radioButton.getText();

编辑:

为了获得id,我建议实现onCheckedChangeListener。

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(RadioGroup radioGroup, int radioButtonID) {
       //radioButtonID contains selected radio button's ID.

       case R.id.dirty:
           //do something
           break;
       case R.id.clean:
           //something else
           break;
       default:
           //default action
           break;
    }
});

希望这有帮助。