【发布时间】:2016-01-22 19:11:37
【问题描述】:
可视化:这个数字从 0 美元开始增加到 125 万美元,并且在 UI 上使用每个增量之间的时间间隔(可能大约 50-100 毫秒?)来显示递增过程。我尝试设置它,但遗憾的是,下面的代码失败了。
double maxValue = 10;
double currentValue = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
//more code
value_text = (TextView) rootView.findViewById(R.id.value_text);
for (int i = 0; i < maxValue; i++) {
if (currentValue != maxValue) {
try {
currentValue++;
value_text.setText(String.valueOf(currentValue));
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
棘手的部分: textview 将从 1 美元增长到 125 万美元,这意味着我们必须在达到第一个 100 万美元后更改为小数。每一步都快速显示在 UI 上。
你们有办法实现这种增量效果吗?
编辑:
我什至会很高兴现有的库(如果有的话)来实现这种递增效果
【问题讨论】:
-
首先不要这样做,
Thread.sleep(50);在应用程序主 UI 线程上。使用TimerTask并调用runOnUiThread更新TextView或者您可以使用Handler。 -
@user370305 : “首先不要这样做。Thread.sleep(50); 在应用程序主 UI 线程上。” - 实际上,更好的建议是 永远不要使用
Thread.sleeep(...)... 永远。这是一个令人讨厌的不雅黑客。 ;)
标签: java android loops textview increment