在BindViewHolder方法中我使用了 -
new CountDownTimer(10000, 1000) {
public void onTick(long millisUntilFinished) {
holder.timer_tv.setText(String.format("00:%02d", millisUntilFinished / 1000));
}
public void onFinish() {
holder.switchScreen();
}
}.start();
并且在持有人中我使用了switchScreen方法
private void switchScreen() {
System.out.println("SWITCH ADAPTER POSITION: " + getAdapterPosition());
if (getAdapterPosition() < list.size() - 1) {
recyclerView.scrollToPosition(getAdapterPosition() + 1);
System.out.println("SWITCH1: " + getAdapterPosition());
} else {
System.out.println("SWITCH2: " + getAdapterPosition());
context.startActivity(new Intent(context, WordTestResultActivity.class).putExtra("correct_words", correct_words).putExtra("total_words", total_words));
((WordTestActivity) context).finish();
}
}
示例: 如果我在RecyclerView中有4个项目,那么switchScreen()会跳过一些项目,但我希望每个项目逐个显示。
如果我在持有人中使用按钮,实现其点击侦听器,并且在点击事件中我使用此切换屏幕方法,它可以逐个显示每个项目。
答案 0 :(得分:0)
目前问题出在switchScreen()方法中。对于按钮单击事件,它工作正常,但对于此CountDownTimer,我必须通过从 -
删除+1来更改switchScreen()方法recyclerView.scrollToPosition(getAdapterPosition());
并从 -
中删除-1if (getAdapterPosition() < list.size()) {
但是它也会产生一些问题,因为现在计时器在第一项之后没有在textview上更新,对于下一项的其余部分它会坚持到00:01,它也不会进入switchScreen方法的其他部分()之后最后一项显示。