gpt4 book ai didi

android - 如何在不导致应用程序崩溃的情况下更新 TextView?

转载 作者:行者123 更新时间:2023-11-29 15:18:43 26 4
gpt4 key购买 nike

在某个Activity中有一个名为timeText的TextView变量,需要在Activity打开3秒后改变。

这是我写的代码:

TextView timeText = (TextView) findViewById(R.id.tvTimeText);
Thread timer = new Thread() {
public void run() {
try {
sleep(3000);
timeText.setText("3");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
timer.start();

但是这给了我这个错误:“无法引用在不同方法中定义的内部类中的非最终变量 timeText”

所以我将 TextView 的修饰符更改为 final 并再次尝试。但是,现在应用程序在启动此 Activity 时崩溃。

最佳答案

无法从非 ui thrad 更新 ui

 timeText.setText("3");

使用runOnUiThreadHandler

runOnUiThread(new Runnable() {

public void run() {
timeText.setText("3");

}
});

您可以将 timeText 声明为实例变量,并且不需要 final 修饰符。

TextView timerText;
protectected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
timeText = (TextView) findViewById(R.id.tvTimeText);

关于android - 如何在不导致应用程序崩溃的情况下更新 TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com