1

我创建了一个滚动文本视图,并且能够添加文本和滚动就好了。问题是,我正在尝试以定时间隔添加文本,并且用户可以通过点击屏幕底部的两个按钮之一来调整所述间隔。一切就绪,但无论我做什么,我只能让它在整个持续时间后一次显示所有文本。假设我尝试每半秒添加一次文本,持续十秒。运行它十秒钟没有任何结果,然后一切都显示出来。我已经尝试使用计数器进行 for/while 循环并通过系统时间进行跟踪。没有。递归很快就会破坏堆栈,这并不令人意外。使用 wait() 或 Thread.sleep() 不起作用并且无论如何都不是理想的,因为按钮需要始终处于活动状态。在私有内部类中创建单独的线程不起作用,因为您无法触摸在另一个线程中创建的视图。尝试在单独的线程中创建自定义视图拒绝工作,原因我还无法弄清楚。

我该怎么做才能实时添加每个条目?

4

1 回答 1

0

在我的情况下,它与一个 Timer 对象一起适用于自动滚动

timer=new Timer();
scroll.setSmoothScrollingEnabled(true);
scroll.pageScroll(ScrollView.FOCUS_DOWN);
scroll.smoothScrollTo(0, text.getBaseline());
x=text.getBaseline();
Toast.makeText(scoruby.this,"number"+x++, Toast.LENGTH_SHORT).show();

timer.schedule(new TimerTask() {

@Override
public void run() {
    TimerMethod();


}
}, 0,1000);
}
private void TimerMethod()
{
//This method is called directly by the timer
//and runs in the same thread as the timer.

//We call the method that will work with the UI
//through the runOnUiThread method.
this.runOnUiThread(Timer_Tick);
}

private Runnable Timer_Tick = new Runnable() {
public void run() {
    x+=5;
    scroll.smoothScrollTo(0, x++);  



}
};
于 2011-06-20T07:11:31.530 回答