我有一个标准的应用程序设置(活动,ViewModel,存储库)。该活动包含一个RecyclerView。 RecyclerView有一个适配器。在我的活动中,我通过观察LiveData对象来更新RecyclerView:
mQuizViewModel.getCurrentQuizTask().observe(this, new Observer<QuizTask>() {
@Override
public void onChanged(QuizTask quizTask){
adapter.setAnswers(quizTask.getAnswers());
}
});
如果用户点击了我的RecyclerView的任何项目,则quizTask将被更改,并依次触发onChanged事件。根据用户点击的项目,我想更改RecyclerView的一些项目的字体颜色。为此,我需要引用上述Activity中的上述watch方法中的每一行。我该如何解决这个问题?
答案 0 :(得分:0)
我很容易地解决了这个问题。我在适配器的onBindViewHolder方法中更改颜色。我在对象的类中添加了一个字段,该字段通过
传递给适配器adapter.setData(DataToPass)
在onBindViewHolder方法中,如果满足条件以更改文本颜色,我将检查包裹在DataToPass中的其他信息。