如何在Recyclerview上的指定位置设置editText的文本属性?

时间:2016-05-03 08:45:06

标签: android android-recyclerview

Recyclerview中有5行(项),它包含Checkbox(cbox)和editText(noOfQst)。我可以使用onBindviewHolder类中的以下代码设置当前持有者editText的文本属性。

holder.noOfQst.setText(String.valueOf(value));

但我需要的是将所有editText的值设置在一起,例如下面的代码

firstrow.noOfQst.setText(String.valueOf(value));
secondrow.noOfQst.setText(String.valueOf(value));
thirdrow.noOfQst.setText(String.valueOf(value));
fourthrow.noOfQst.setText(String.valueOf(value));
fifthrow.noOfQst.setText(String.valueOf(value));

我这样做是因为当用户更改复选框的状态时需要设置值。以下是我的一段代码供您理解。

holder.cbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    //set your object's last status
                    tblchapter.setSelected(isChecked);
                    tblchapter.setVisibled(isChecked);


                    //if checkbox checked display EditText(No of qstns), else hide it.
                    if (holder.cbox.isChecked()) {
                            checkedCount+=1;
                            holder.noOfQst.setVisibility(View.VISIBLE);
                            holder.noOfQst.requestFocus();

                               if(checkedCount>0)
                                    {
                                        int value = 40/checkedCount;
                                        holder.noOfQst.setText(String.valueOf(value));

                                    }
                                }
                            }

                        }
                     else {
                            checkedCount-=1;
                            holder.noOfQst.setVisibility(View.INVISIBLE);
                            holder.noOfQst.setText(""); //remove entered value when uncheck

                    }
                }
            });

1 个答案:

答案 0 :(得分:0)

您可以RecyclerView使用RecyclerView.getChildAt()的孩子。它将为您提供当前在移动设备中可见的所有孩子。

for(i = 0; i < recyclerView.getChildCount(); i++)
{
    final View child = recyclerView.getChildAt(i);
    // do something with the View. like setting the text to TextView
}