Android中带有两个复选框(是或否)的Recyclerview

Android中带有两个复选框(是或否)的Recyclerview,android,checkbox,android-recyclerview,onclicklistener,Android,Checkbox,Android Recyclerview,Onclicklistener,如何获取回收器视图中每行中特定复选框(是或否)的位置我可以获取行方向复选框的位置,但滚动时,两个复选框(是和否)都被选中 ((复选框ViewHolder)holder).chkNo.setOnClickListener(新) View.OnClickListener(){ 请参阅答案您可以使用两个布尔变量,而不是od可见性使用setchecked(真/假)请参阅答案您可以使用两个布尔变量,而不是od可见性使用setchecked(真/假)维护当前状态的模型,例如- class MyModel{

如何获取回收器视图中每行中特定复选框(是或否)的位置我可以获取行方向复选框的位置,但滚动时,两个复选框(是和否)都被选中

((复选框ViewHolder)holder).chkNo.setOnClickListener(新) View.OnClickListener(){


请参阅答案您可以使用两个布尔变量,而不是od可见性使用setchecked(真/假)

请参阅答案您可以使用两个布尔变量,而不是od可见性使用setchecked(真/假)

维护当前状态的模型,例如-

class MyModel{
    String status;
    boolean isChecked;
}
现在,在onBind中用每个复选框标记位置。所以,每当您获取ChangeListner时,只需在模型中进行更改。还要根据模型标志值绑定复选框


希望能有所帮助,如果您需要更多帮助,请告诉我:)

维护当前状态的模型,例如-

class MyModel{
    String status;
    boolean isChecked;
}
现在,在onBind中用每个复选框标记位置。所以,每当您获取ChangeListner时,只需在模型中进行更改。还要根据模型标志值绑定复选框



希望它会有所帮助,如果您需要进一步的帮助,请告诉我:)

您可以使用
SparseArray
来记录您已经选中的复选框。

您可以使用
SparseArray
来记录您已经选中的复选框。

在chekbox中使用检查更改侦听器然后如何获取特定复选框的位置请添加布局的屏幕截图或xml文件,以及适配器类[IMG]我的适配器的屏幕截图class@Himanshu附加屏幕截图不是一个好方法,最好在问题中复制和粘贴代码。使用chekbox中的check change listener然后如何获取特定复选框的位置您可以详细说明解决方案吗请添加布局的屏幕截图或xml文件,以及您的适配器类[IMG]我的适配器的屏幕截图class@Himanshu附加屏幕截图不是一个好方法,最好是在问题中复制和粘贴代码。好的,首先做一个更改,只设置标记位置,这样一旦你有了位置,你就可以轻松访问问题和所有内容。现在在chngeListener上,从视图中获取标记位置并更改模型e> ratingQuestion.get(position).isSelected=true;并单击no set为false。希望它能帮助您:)您尝试了我的解决方案吗?无需更改模型。如果您需要代码方面的帮助,请编辑您的帖子并添加适配器代码。单选按钮在这种情况下可以使用*bold*
chHolder.radioGroup.setTag(newInteger(position));chHolder.rGrp.check(questions.get(position.getSelectedRadioButtonId());chHolder.rGrp.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){@Override public void onCheckedChanged(RadioGroup,int checkedId){int radioBtnID=group.getCheckedRadioButtonId();selectedPos=(Integer)group.getTag();questions.get(position).setSelected(true);questions.get(selectedPos).setSelectedRadioButtonId(radioBtnID);}});chHolder.rGrp.check(questions.get(position).getSelectedRadioButtonId()
好的,首先做一个更改,只设置标记位置,这样一旦你有了位置,你就可以轻松地访问问题和所有内容。现在在“是”的chngeListener上,从视图中获取标记位置并更改模型
评分问题。获取(位置).isSelected=true;
并单击no set as false。希望它能帮助您:)您尝试了我的解决方案吗?无需更改模型。如果您需要代码方面的帮助,请编辑您的帖子并添加适配器代码。单选按钮在这种情况下有效*bold*
chHolder.radioGroup.setTag(newInteger(position));chHolder.rGrp.check(questions.get(position.getSelectedRadioButtonId());chHolder.rGrp.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){@Override public void onCheckedChanged(RadioGroup,int checkedId){int radioBtnID=group.getCheckedRadioButtonId();selectedPos=(Integer)group.getTag();questions.get(position).setSelected(true);questions.get(selectedPos).setSelectedRadioButtonId(radioBtnID);}});chHolder.rGrp.check(questions.get(position).getSelectedRadioButtonId();