Обновить ярлык кнопки при нажатии - PullRequest
1 голос
/ 08 июня 2011

Мне нужно изменить текст кнопки при щелчке, поэтому я использовал myButton.setText("New Label"), но представление обновляется только после завершения функции onClick(View v).

На самом деле мне нужно изменить метку при нажатии кнопки, не дожидаясь окончания функции: то, что я делаю при нажатии кнопки, занимает довольно много времени.

Одно решение можетзаставить View обновить до конца onClick(), но я не знаю, возможно ли это или как это сделать.

Другое решение может состоять в том, чтобы перенести то, что я делаю в onClick() вне ее в новой функции, которая будет вызываться сразу после конца onClick(), но и здесь я не знаю, как я мог это сделать.

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

Возможно, вы захотите установить OnTouchListener и реализовать метод onTouch .

В этом методе вы получите MotionEvent и сможете прослушивать MotionEvent.ACTION_DOWN .

Таким образом, вы можете изменить метку, как только пользователь коснется кнопки.

0 голосов
/ 08 июня 2011

Вы не должны занимать много времени в потоке пользовательского интерфейса.Вы должны запустить отдельный рабочий поток, затем обновить текст на кнопке и вернуться из функции onClick.

Чтобы узнать, как запустить рабочий поток, который должен обновлять пользовательский интерфейс по мере его выполнения и / или завершения, см. AsyncTask.

...