Delay loop

I have a TextView, and I want every second to highlight a different letter in the word.

For example: h ello - h e llo - he l lo - hel l o - hell o strong>

What I've 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, this does not work, and I only see the last letter highlighted.

Thanks in advance.

+4
source share
1 answer
 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); } }; 
+3
source

Source: https://habr.com/ru/post/1488967/


All Articles