2015-01-24 3 views
0

Я пытаюсь изменить экран приложения во время работы функции.Как изменить экран андроида во время функции

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.

Теперь, что я делаю неправильно? :/

ответ

1

Что я делаю неправильно

вы звоните sleep ждать UI тему, которая отвечает за отрисовку ваши взгляды и обрабатывать события. Если вы хотите запланировать 10 различных перерисовки ваших просмотров, вы можете использовать и Handler и его метод postDelayed

+0

А что, если я хочу менять виды каждую секунду до тех пор, пока не будет нажата кнопка и не остановится функция? 10 был всего лишь примером – OriShuss

+0

, пожалуйста, взгляните на то, что я добавил к вопросу .. Я работал над этим целый день и не могу понять, что это правильно – OriShuss

+0

Nevermind, извините за беспорядок, и я НАКОНЕЦ получил его. . :) Спасибо! – OriShuss

Смежные вопросы