环与延迟周期 [英] Loop with delay period
本文介绍了环与延迟周期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个TextView,我想每一秒以高亮显示词的另一封信。
例如:
^ h ELLO - ^ h的电子邮件 LLO - 他的→罗 - HEL → 0 - 地狱 0
我做了什么:
INT I = 0;
字符串文本;
处理程序处理程序=新的处理程序();公共无效spanText(字符串TXT){
文本TXT =;
的for(int i = 0; I< text.length();我++){
handler.post(可运行);
}可运行可运行=新的Runnable(){
@覆盖
公共无效的run(){
Spannable spannable = Spannable.Factory.getInstance()newSpannable(文本)。
StyleSpan风格=新StyleSpan(Typeface.BOLD);
spannable.setSpan(风格,I,I + 1,Spanned.SPAN_INCLUSIVE_INCLUSIVE);
bestResult.setText(spannable,BufferType.SPANNABLE);
我++;
如果(ⅰ&下; text.length())
handler.postDelayed(可运行,5000);
}
};
不幸的是它不工作,我只能看到最后一个字母高亮显示。
感谢您提前。
解决方案
INT I = 0;
字符串文本;
处理程序处理程序=新的处理程序();公共无效spanText(字符串TXT){
文本TXT =;
handler.post(可运行);可运行可运行=新的Runnable(){
@覆盖
公共无效的run(){
Spannable spannable = Spannable.Factory.getInstance()newSpannable(文本)。
StyleSpan风格=新StyleSpan(Typeface.BOLD);
spannable.setSpan(风格,I,I + 1,Spanned.SPAN_INCLUSIVE_INCLUSIVE);
bestResult.setText(spannable,BufferType.SPANNABLE);
我++;
如果(ⅰ&下; text.length())
handler.postDelayed(可运行,5000);
}
};
I have a TextView and I want each second to highlight another letter in the word.
For example: h e l l o - h e l l o - h e l l o - h e l l o - h e l l o
What I have done:
int i = 0;
String text;
Handler handler = new Handler();
public void spanText(String txt) {
text = txt;
for(int i=0; i<text.length(); i++) {
handler.post(runnable);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
Spannable spannable = Spannable.Factory.getInstance().newSpannable(text);
StyleSpan style = new StyleSpan(Typeface.BOLD);
spannable.setSpan(style, i, i+1, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
bestResult.setText(spannable, BufferType.SPANNABLE);
i++;
if(i < text.length())
handler.postDelayed(runnable, 5000);
}
};
Unfortunately it doesn't work and I can see only the last letter highlighted.
Thank you in advance.
解决方案
int i = 0;
String text;
Handler handler = new Handler();
public void spanText(String txt) {
text = txt;
handler.post(runnable);
Runnable runnable = new Runnable() {
@Override
public void run() {
Spannable spannable = Spannable.Factory.getInstance().newSpannable(text);
StyleSpan style = new StyleSpan(Typeface.BOLD);
spannable.setSpan(style, i, i+1, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
bestResult.setText(spannable, BufferType.SPANNABLE);
i++;
if(i < text.length())
handler.postDelayed(runnable, 5000);
}
};
这篇关于环与延迟周期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文