Есть 4 айтема RecyclerView клик реализовал по LinerLayout, если юзер нажмет на один из айтемов, нужно чтобы в течение 3 секунд клики у всех айтемов отключились, как быть?
UPD
Клик айтема из адаптера RecyclerView
holder.linearClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
// code
}
});
Мне именно в этот клик нужно установить отключение айтемов на 3 секунды. Я сделал простое .setEnabled(false) и кликнутый клик неактивен, но зато активны остальные 3. Мне нужно весь массив отключить в адаптере ресайкла
Завести поле для сохранения времени нажатия и при клике сравнивать с текущим временем:
private long mLastClickedTime;
-----------------------------
public void onClick(View v) {
long current = System.currentTimeMillis();
if ((current - mLastClickedTime) < 3000L)
return;
mLastClickedTime = current;
// some code
}
Можно с CountDownTimer сделать
ViewHolder.disableClick()
new CountDownTimer(3000, 3000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
ViewHolder.enableClick()
}
}.start();
Сборка персонального компьютера от Artline: умный выбор для современных пользователей