У меня есть RecyclerView, где вы можете прокручивать элементы влево, чтобы заархивировать их. Сначала будет показан макет отмены, а затем через 2 секунды он будет заархивирован (теперь для первого теста я просто удаляю элемент). Проблема в том, что использование notifyItemRemoved(pos)
из потока Timer приводит к сбою приложения, говорящего, что только исходный поток, создавший представление (поток пользовательского интерфейса), может касаться его представлений. Есть ли какой-нибудь трюк, чтобы обойти это? Я использую таймер внутри ViewHolder моего расширенного класса RecyclerView.Adapter.
Вот код таймера:
archiveTimer.schedule(new TimerTask() {
@Override
public void run() {
notesController.remove(position);
notesList.remove(position);
queuedForArchive = false;
}
}, 2000);
В действиях вы можете использовать runOnUiThread, но я тоже не могу это использовать (функция MainActivity.runOnUiThread(Runnable)
не является статической, поэтому я не могу использовать ее вне MainActivity)