Нужно, что бы автоматически вывелся текст в TextView
, а по прошествию паузы он изменился.
У меня так:
...
tv.setText("1");
SystemClock.sleep(2000);
tv.setText("2");
...
Но результат только такой: Пауза и выведение tv.setText("2");
, а вот
tv.setText("1");
- нет вообще. Менял виды
пауз, виды действий до и после неё, виды методов (по клику, по
перенаправлению ...), но увы, он будто игнорирует первое действие. Вероятно
это связано только с виджетами.
Используйте Handler.
...
tv.setText("1");
runWithDelay();
...
private void runWithDelay() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
tv.setText("2");
}
}, 2000);
}
SystemClock.sleep()
не рекомендуется использовать в основном потоке.
Как вариант использовать:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// что-то
}
}, 2000);
или
new CountDownTimer(5000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// тик
}
@Override
public void onFinish() {
// на финише
}
}.start();
Не надо усыплять главный поток - он из-за этого и не может обновить текст.
Можно сделать через Handler
или так (у каждой View
есть свой) :
tv.setText("1");
tv.postDelayed(() -> tv.setText("2"), 2000);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Из приложения заполняю данные на сервер Firebase, и тут же отображаю их в RecyclerView, по при первом запуске когда происходит запись на сервер в RecyclerView...
Хочу заменить в тегах <img> все атрибуты src на data-src, по всему проекту, но чтобы не затрагивались теги script, js-код и тп