如何获取屏幕上未显示的RecyclerView项目数据?

时间:2018-11-01 20:22:30

标签: android android-recyclerview

我有一个recyclerView,它的每个项目都包含一个问题标题,并且其中还包含一个recyclerView。单击发送按钮时,我想更改第二个recyclerView内部项目的颜色。我使用以下几行代码执行此操作: (auto.create.topics.enable=true是RecyclerView,questionListView是第二个RecyclerView)

ansRecycle

对于在屏幕上显示的项目,一切正常,但对于其他项目,则不存在ViewHolder,并且我无法更改其颜色。 我该怎么办?

2 个答案:

答案 0 :(得分:1)

问题是屏幕上没有的项目不存在。 recyclerview的全部要点是它使用少量视图,并在它们离开屏幕时对其进行回收。 您应该做的是在绑定数据时执行相同的“ if”操作。

    @Override
    public void onBindViewHolder(MyDataViewHolder holder, int position) {
        if(ch.getText().toString().equals(questions.get(i).getCorrectAnswers())){
            ch.setTextColor(Color.RED);
        }
    }

答案 1 :(得分:0)

解决方法将是:

  1. 在问题中添加一个字段-像int color =使用setters / getters的颜色
  2. 点击获取questionItem,并将其颜色设置为新颜色
  3. recyclerView的onBind查找textView并根据您的任务设置颜色
  4. 与答案相同。

例如

 holder.textView.setColor(question.getColor());