如何在功能期间更改Android屏幕

时间:2015-01-24 13:07:42

标签: android android-studio

我正在尝试在功能运行期间更改应用的屏幕。

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();
       }
    }
}

函数通过单击xml文件中的start_button来调用StartRecording()。

单击stop_button时,

录制设置为false。

屏幕上的视图应该更改,等待一秒钟,再次更改,等待一秒钟,等等。 但是发生的是该函数等待循环结束,然后仅显示最终的屏幕更改。我做错了什么?

非常感谢:)

编辑:

我尝试使用Handler,结果相同..

private final Handler mHandler = new Handler(Looper.getMainLooper())
{
    public void handleMessage(Message msg)
    {
        tv.setText((String) msg.obj);
    }
};

tv是一个textView。我没有在上面代码中的try {}上方使用tv.setText,而是向mHandler发送了一条消息来更改文本,并且只有在整个startRecording函数结束后才会更改它。

现在,我做错了什么? :/

1 个答案:

答案 0 :(得分:1)

  

我做错了什么

你正在调用sleep等待UI线程,它负责绘制你的视图和处理事件。如果您想安排10次不同的视图重绘,可以使用Handler及其postDelayed方法