【发布时间】:2016-07-03 19:17:24
【问题描述】:
我一个字母一个字母地给 textview 写文本。只有在显示整个文本后,我才想开始运行进度条。我想我可以通过通知/等待来实现它,但我不知道如何。有什么帮助吗?
我创建了 Typewriter 扩展 Textview 的类:
private Handler mHandler = new Handler();
public Runnable characterAdder = new Runnable() {
@Override
public void run() {
setText(mText.subSequence(0, mIndex++));
if (mIndex <= mText.length()) {
mHandler.postDelayed(characterAdder, mDelay);
}
}
};
public void animateText(CharSequence text) {
mText = text;
mIndex = 0;
setText("");
mHandler.removeCallbacks(characterAdder);
mHandler.postDelayed(characterAdder, mDelay);
}
然后我在主要活动中使用它:
Typewriter writer = (Typewriter)findViewById(R.id.typewriter);
writer.animateText("Lorem ipsum dolor sit amet");
//wait until animation finishes to perform further actions
【问题讨论】:
-
使用 Future 对象?
-
我该怎么做?我对此一无所知,我宁愿先学习如何使用基本的 runnable 来做到这一点。
-
@rahmatwaisi 但我没有明确地创建一个新线程;我执行使用可运行对象的 animateText 方法。在这种情况下我该怎么做?
标签: java android runnable android-handler