Я пытаюсь изменить экран приложения во время работы функции.Как изменить экран андроида во время функции
public void StartRecording(View view)
{
start_button.setEnabled(false);
stop_button.setEnabled(true);
recording = true;
while(recording==true)
{
// Here is a code that changes many views on the screen
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Функция StartRecording() вызывается нажатием кнопки start_button в XML-файле.
запись устанавливается на false при нажатии кнопки stop_button.
Представления на экране должны измениться, подождать секунду, снова изменить, подождать секунду и так далее. Но происходит то, что функция ожидает завершения цикла, а затем отображает только окончательное изменение экрана. Что я делаю не так?
Спасибо впереди:)
Edit:
Я попытался с помощью обработчика и имеет тот же результат ..
private final Handler mHandler = new Handler(Looper.getMainLooper())
{
public void handleMessage(Message msg)
{
tv.setText((String) msg.obj);
}
};
тв является TextView. Вместо того, чтобы использовать tv.setText чуть выше try {} в приведенном выше коде, я отправил сообщение mHandler для изменения текста и все еще изменяет его только после завершения всей функции startRecording.
Теперь, что я делаю неправильно? :/
А что, если я хочу менять виды каждую секунду до тех пор, пока не будет нажата кнопка и не остановится функция? 10 был всего лишь примером – OriShuss
, пожалуйста, взгляните на то, что я добавил к вопросу .. Я работал над этим целый день и не могу понять, что это правильно – OriShuss
Nevermind, извините за беспорядок, и я НАКОНЕЦ получил его. . :) Спасибо! – OriShuss