我的按钮有一个字符串id
<RadioButton
android:id="@+id/Dirty"
android:text="Very Dirty"
我想在我的代码中使用名称Dirty但我不能使用get Text,因为单选按钮的显示名称与我需要的不同,并且获取Id返回一个整数。
有关如何从我选择的单选按钮中获取“脏”的任何建议吗?
感谢。
代码(来自评论)
RadioButton rb = (RadioButton) findViewById(selectedId);
String sel = (String) rb.getText();
答案 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)
答案 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;
}
});
希望这有帮助。