如何在“按钮”中逐个显示RecyclerView中的项目,而不是一次性加载所有问题

时间:2017-10-19 13:27:11

标签: android android-recyclerview recycler-adapter

我有一个问题列表和答案选择(让我们假设5个问题)。目前,所有5个问题都在RecyclerView中一次加载,因此学生可以回答视图中的所有问题。我想改变这个问题,第一个问题加载,只有在学生回答并点击提交按钮后,第二个问题才会加载,等等。换句话说,提交问题1的答案,视图清除并显示问题2,依此类推。我见过的应用程序的一个例子是Duolingo。提交当前显示的问题后,您才会看到下一个问题。我如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

如果您一次只需要显示一个问题,则根本不需要使用RecyclerView。只需使用文本视图并重复使用它们。

如果要在解锁新问题时显示旧问题,可以使用RecyclerView适配器的getItemCount()方法处理。

首先按顺序排列问题并使用:

@Override
public int getItemCount() {
    return currentQuestionIndex + 1;
}

之后,当点击下一个按钮时,递增当前问题的索引并在notifyDataSetChanged()中拨打RecyclerView

如果您只想显示一个问题并使用RecyclerView,请从getItemCount方法返回1。然后在onBindViewHolder方法中,而不是使用position参数从列表中获取项目,请使用list.get(currentQuestionIndex);

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    Question question = questionList.get(currentQuestionIndex);
    //other code
}