【发布时间】:2016-04-23 07:15:56
【问题描述】:
我正在编写一个小程序,每 5 秒更新一次 TextView。但我无法每 5 秒更新一次 textview 的文本,尤其是当涉及到最后一个数组列表项时,例如:下面代码中的 C
我在关注this教程
public class MainActivity extends Activity {
Timer timer;
MyTimerTask myTimerTask;
List<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textCounter = (TextView)findViewById(R.id.counter);
timer = new Timer();
myTimerTask = new MyTimerTask();
timer.schedule(myTimerTask, 1000, 5000);
....
list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
}
class MyTimerTask extends TimerTask {
@Override
public void run() {
runOnUiThread(new Runnable(){
@Override
public void run() {
for(int i=0; i<list.size(); i++) {
textCounter.setText(list.get(i).toString());
}
}});
}}
【问题讨论】:
-
不是迭代列表,你为什么不设置TextView一次一个Text。
-
不要使用定时器任务,它不能正常工作,使用处理程序。
-
在哪里调用 timer.start() 方法来启动 Timer。
-
我正在使用这个教程:android-er.blogspot.in/2013/12/…
-
您的 TextView 是否总是显示列表的最后一项?
标签: java android for-loop arraylist timer