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

How to change android screen during function

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

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 是一个文本视图。我没有在上面代码中的 try{} 上方使用 tv.setText,而是向 mHandler 发送了一条消息来更改文本,它仍然仅在整个 startRecording 函数结束后才更改它。

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

What am I doing wrong

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