gpt4 book ai didi

android - 如何在 Android 中循环时刷新 TextView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:10 24 4
gpt4 key购买 nike

我有这个:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


TextView debugView = (TextView)findViewById(R.id.debugView);

for(int i=0;i<100;i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
debugView.setText(Integer.toString(i));
}

}

我希望它每次通过循环更新 TextView ,所以我会得到:1, 2, 3, ... 99

相反,应用程序在 10 秒内什么都不做,然后输出:99

我猜我需要在循环期间刷新 TextView。我是 Android 开发的新手。有人可以告诉我这是否是实现此目标的最佳方法吗?

我的最终目标是能够处理音频样本以构建吉他调音器。我试图简单地从视觉上验证该应用程序正在响应外部音频,并且我想更新一个 TextView 来证明这一点。请告知是否有更好的方法。

最佳答案

我有同样的问题,我用处理程序解决了它:

public class myClass extends Activity{

private Handler mHandler;
private TextView text;
private int i;

@Override
public void onCreate(Bundle savedInstanceState) {
text = (TextView) findViewById(R.id.textView01);
i = 0;
mHandler = new Handler();
mHandler.post(mUpdate);

}

private Runnable mUpdate = new Runnable() {
public void run() {

text.setText("My number: " + i);
i++;
mHandler.postDelayed(this, 1000);

}
};}

通过 mHandler.post(mUpdate),您可以调用 mUpdate,它是一个在不同线程中运行的 Runnable,可以更新 UI。在方法 run() 中,不是创建一个 for 循环,这会遇到与您的问题相同的问题,您可以使用辅助变量设置所需的文本,递增它并调用 mHandler .postDelayed(this,updateTime)。此刻, View 更新,屏幕上有文本,在指定的时间(以毫秒为单位)之后,将再次调用 Runnable mUpdate 并使用下一个数字设置文本,等等上。

希望对你有所帮助。

关于android - 如何在 Android 中循环时刷新 TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4425660/

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