У меня есть пользовательское представление, которое содержит несколько представлений само по себе. Я сделал так, чтобы при щелчке по одному из представлений внутри этого представления контейнера он запускал поток «таймера», который должен обновлять TextView, также внутри представления контейнера, каждую секунду. Моя проблема возникает, когда я хочу обновлять TextView каждую секунду. Видимо, это было не так просто, как я думал. Я реализовал Runnable в своем контейнере таким образом и выполнил поток при нажатии кнопки, чтобы запустить таймер:
public void run() {
while(runnning) {
// if one second has passed, update the Textview
}
}
Я получаю типичное исключение невозможности касания-просмотра-внешней иерархии, которое в основном означает, что оно не выполняется в потоке пользовательского интерфейса. Я не хочу использовать post(Runnable)
здесь, потому что я не хочу ждать до конца потока, чтобы обновить одну секунду. Для меня также не практично передавать всю активность, которую он сам себе должен выполнить runOnUiThread(Runnable)
. Так может кто-нибудь сказать мне, как я могу это сделать? Если кому-то нужны разъяснения, пожалуйста, дайте мне знать!