gpt4 book ai didi

android:如何每2秒将文本附加到另一个 Activity 中的TextView

转载 作者:行者123 更新时间:2023-11-30 04:24:04 25 4
gpt4 key购买 nike

我有两个 Activity ,一个是主要 Activity ,我还有另一个 Activity 称为测试

在主 Activity 中我有一个按钮,当我点击这个按钮时我会转到测试 Activity

在测试 Activity 中,我希望应用程序每 10 秒自动将一些文本附加到 TextView

此文本可以是例如“test”所以每 10 秒将添加“测试”但是,当我离开 Activity 并转到主要 Activity 时,这个过程将继续发生因此,例如,如果我在主要 Activity 上花费 20 秒,然后返回到测试 Activity ,我将在 TextView 中看到另外两个“测试”字符串。

我尝试用 timertask 做这件事,但完全没有成功

这是测试 Activity 的代码,在主 Activity 中我只有显示其他 Activity 的按钮

public class test2 extends Activity {
/** Called when the activity is first created. */

private TimerTask task;
private Handler handler;
private TextView tv;
private Timer t;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.text1);

t = new Timer();
task = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
TextView tv = (TextView) findViewById(R.id.tv1);
tv.append("test");

}
});

}
};
t.schedule(task, 2000);
}
}

当我单击主 Activity 的按钮以转到测试 Activity 时,出现以下错误:

                FATAL EXCEPTION: Timer-0
java.lang.NullPointerException

提前致谢

最佳答案

如果你想实现一种从后台更新 View 的方法,我建议切换到使用 Service相反,计时器可能会定期发送广播,主要 Activity 可以通过 BroadcastReceiver 访问广播. TimerTask 可以在后台服务启动时执行。

如果您想在测试类加载时立即更新它,您也可以在服务上实现一个“更新”BroadcastReceiver,其功能是发送另一个具有更新值的广播。

这样,您就不必担心在 Activity 之间切换时您的测试 Activity 会暂停(如果那是您想要的)。

编辑:

这是一个非常好的教程,应该包含您需要的一切:

http://www.vogella.de/articles/AndroidServices/article.html

关于android:如何每2秒将文本附加到另一个 Activity 中的TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8811792/

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