在Android中使用两个复选框(是或否)的Recyclerview

时间:2016-07-04 10:26:29

标签: android checkbox android-recyclerview onclicklistener

如何在回收站视图的每一行中获取特定复选框(是或否)的位置我能够获得行方式复选框的位置但是在滚动时(是和否)复选框正在被检查。

((CheckBoxViewHolder)holder).chkNo.setOnClickListener(new View.OnClickListener(){

                @Override
                public void onClick(View v) {
                    ((CheckBoxViewHolder) holder).chkYes.setChecked(false);
                    CheckBox cb = (CheckBox) v;
                    RatingQues contact = (RatingQues) cb.getTag();
                    contact.setSelected(cb.isChecked());
                    ratingQuestions.get(position).setSelected(cb.isChecked());


            ((CheckBoxViewHolder) holder).chkYes.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ((CheckBoxViewHolder) holder).chkNo.setChecked(false);
                   CheckBox cb = (CheckBox) v;
                    RatingQues ratingQues = (RatingQues) cb.getTag();
                     ratingQues.setSelected(cb.isChecked());
                    ratingQuestions.get(position).setSelected(cb.isChecked());

3 个答案:

答案 0 :(得分:2)

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

class MyModel{
    String status;
    boolean isChecked;
}

现在使用每个复选框标记位置,在onBind中。因此,无论何时getChangeListner只需更改模型。还可以根据模型标志值绑定复选框。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以使用SparseArray记录您已检查的那个。