我的recylerview行项目中包含以下内容
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/radioItems"
android:layout_height="wrap_content"
android:weightSum="2"
android:orientation="horizontal">
<RadioButton android:id="@+id/radio_yes"
android:layout_width="wrap_content"
android:layout_weight="0.8"
android:layout_height="wrap_content"
android:textSize="12sp"
android:text="Yes"/>
<RadioButton android:id="@+id/radio_no"
android:layout_width="wrap_content"
android:layout_weight="1"
android:textSize="12sp"
android:layout_height="wrap_content"
android:text="No"/>
</RadioGroup>
所以我想在我的recyclerview适配器中侦听是否选中了无线电组项,并获取是否已检查其是或否。因此我在bindviewholder上的recyclerview中有
holder.radioItems.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Log.i("test",""+group.getCheckedRadioButtonId());
}
});
但是当我查看日志时,可以看到类似2131230980, 2131230979
的值,但看不到单选按钮的ID
我希望在日志中看到radio_yes
或radio_no
的ID。
我在这方面错过了什么。
我仍然想使用单选按钮,而不是独立的单选按钮。
答案 0 :(得分:3)
您只需使用开关盒即可在 setOnCheckedChangeListener
中查找当前选中的ID switch (checkedId) {
case R.id.radio_yes :
Log.i("test","radio_no");
break;
case R.id.radio_no:
Log.i("test","radio_yes");
break;
}
比切换用例更简单,您可以使用以下代码
String currentCheckedId=getResources().getResourceEntryName(checkedId);
Log.d("test",currentCheckedId);
答案 1 :(得分:2)
您可以看到此答案 https://stackoverflow.com/a/29818783/5523669
getResources().getResourceEntryName(getId())