我是Android的菜鸟,我正尝试从arrayArray字符串循环文本并将其显示在textswitcher中.我希望文本每两秒钟更改一次.我用this SO问题作为指导,用按钮切换文本没有问题.但是,当我尝试使用for循环以2秒的延迟循环文本时,它仅显示arrayList中的第一个文本.如何使循环连续执行并暂停?任何帮助是极大的赞赏.
我的代码;
private void updateCounter()
{
try{
for (int i=0; i< CoinShowReader.tickercontent.size(); i++){
mHandler.postDelayed(new Runnable() {
public void run() {
m_switcher.setText((CoinShowReader.tickercontent.get(CoinShowReader.m_counter)));
CoinShowReader.m_counter++;
}
}, 2000);
}
}catch(Exception e){
e.printStackTrace();
}
}
解决方法:
删除循环,您不需要它,只需在处理程序内部安排另一个可运行的花药,如下所示:
void updateTextView(){
m_switcher.setText((CoinShowReader.tickercontent.get(CoinShowReader.m_counter)));
CoinShowReader.m_counter++;
mHandler.postDelayed(new Runnable() {
public void run() {
updateTextView();
} } ,2000); }
}
这样,每次对updateTextView()的调用都会安排下一个调用,依此类推…
注意:别忘了插入触发器来停止该行为,因为它是无限的