我有以下计时器:
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
--mTimer;
mTimeLeft.setText(String.valueOf(mTimer));
}
}, 0, 1000);
当我触摸屏幕时,TextView
中的文字会发生变化。
如何以编程方式刷新TextView
?
答案 0 :(得分:3)
我认为这篇文章会对你有所帮助。 http://android-developers.blogspot.com/2007/11/stitch-in-time.html
基本上你想使用SDK中提供的Handler
类。您不应该像其他人建议的那样调用invalidate,因为setText会为您执行此操作。
希望这有帮助!
答案 1 :(得分:2)
应该从主线程更新UI。看看更接近你想要的this example。
答案 2 :(得分:0)
TextView yourTextView =(TextView)findViewById(R.id.your_text_view_ID);
yourTextView.setText("your text");
答案 3 :(得分:0)
如果没有变化,请尝试拨打invalidate
。另外,确保从UI线程调用,如果没有,则使用post
方法发送将在UI线程中执行的runnable(可以更改文本。)