Java Android中带计时器的Foreach字符串[]
我在android中的foreach/for循环中实现了一个计时器。我不知道该使用哪个TextField或TextView,它每隔30毫秒填充一个字符串数组中的下一个字符串:Java Android中带计时器的Foreach字符串[],java,android,loops,android-intent,timer,Java,Android,Loops,Android Intent,Timer,我在android中的foreach/for循环中实现了一个计时器。我不知道该使用哪个TextField或TextView,它每隔30毫秒填充一个字符串数组中的下一个字符串: String[] faces = retrieve_pattern().split("\""); 我需要帮助实现这一点 编辑: Boris,你的例子很有效,但是它打印出了所有的字符串,但是我只需要显示一个字符串,过一段时间删除它,然后显示下一个字符串,直到结束。在TextField中有一种文本动画 我尝试过TimerTa
String[] faces = retrieve_pattern().split("\"");
我需要帮助实现这一点
编辑:
Boris,你的例子很有效,但是它打印出了所有的字符串,但是我只需要显示一个字符串,过一段时间删除它,然后显示下一个字符串,直到结束。在TextField中有一种文本动画
我尝试过TimerTask,但无法使其工作。我认为最合适的方法是使用:
我是用心写的,所以如果遇到任何问题,请写回。那么您想实现一个例程,每隔30毫秒向TextView添加一个元素,直到添加完所有元素为止?这不是您要做的。使用或将计时器与计时器任务结合使用。采用0毫秒为延时,30毫秒为重复的调度方法。是每30分钟一次,还是每连续30分钟打开一次应用程序?计时器和TimerTask是Java长期存在的坏习惯。在为Android编程时,使用getHandler.postRunnable更好。谢谢Boris,我尝试按照您的建议进行操作,现在出现了以下错误,请参阅“添加编辑错误”。@Jake:您真的在TextView上使用setText吗?如果是这样,新的刺应该取代旧的刺。
public class MyActivity extends Activity {
private String [] mSplits;
private int mSplitIndex;
private Handler updater = new Handler() {
@Override
public void handleMessage(Message msg) {
TextView textView = (TextView)MyActivity.this.findViewById(R.id.text_view);
String text = mSplits[mSplitIndex++];
textView.setText(text);
if (mSplitIndex < mSplits.length) {
sendEmptyMessageDelayed(0, 30);
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_split);
updater.sendEmptyMessageDelayed(0, 0));
}
}