编写一个应用程序,主活动包含一个文本视图和按钮,点击按钮,启动一个新线程,该新线程睡眠3秒后,使用Handler发送消息将文本试图的内容更改为“跟新完成”。
时间: 2023-06-04 10:08:34 浏览: 110
好的,这是一个关于Android应用程序开发的问题,我可以帮您解答。
您可以在主活动的Java文件中,定义一个内部类继承自Thread类,重写run方法来实现启动新线程和睡眠的功能,在睡眠结束后使用Handler发送消息更新文本试图的内容。具体代码实现如下所示:
```
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private Button mButton;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.text_view);
mButton = findViewById(R.id.button);
mHandler = new Handler(getMainLooper());
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new UpdateThread().start();
}
});
}
private class UpdateThread extends Thread {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mHandler.post(new Runnable() {
@Override
public void run() {
mTextView.setText("更新完成");
}
});
}
}
}
```
在此代码中,我们在MainActivity类中定义了一个内部类UpdateThread继承自Thread类,并重写了run方法,在其中使用Thread.sleep方法睡眠3秒后,使用Handler发送消息更新文本试图的内容。
在主活动的onCreate方法中,我们初始化了UI控件,并为按钮设置了点击事件,在点击事件中启动了新线程UpdateThread。
这样,当我们点击按钮时,就会启动新线程进行睡眠和更新TextView的操作。
阅读全文