在我的strings.xml中,我有5个带文本的字符串。我希望能够每5秒更改一次TextView的内容。
示例:
前5秒TextView将显示第一个字符串的内容,然后接下来的五秒钟将显示第二个字符串。在第五个字符串之后,它将再次显示第一个字符串。
对于这个糟糕的描述感到抱歉,我是Java新手。
答案 0 :(得分:2)
试试这个:
final TextView textView = yourTextView;
final int[] array = {R.string.text1, R.string.text2,R.string.text3,R.string.text4,R.string.text5};
textView.post(new Runnable() {
int i = 0;
@Override
public void run() {
textView.setText(array[i]);
i++;
if (i ==5)
i = 0;
textView.postDelayed(this, 5000);
}
});
答案 1 :(得分:0)
new CountDownTimer(25000, 5000) {
public void onTick(long millisUntilFinished) {
mTextField.setText(//question here);
}
public void onFinish() {
mTextField.setText(//End of questions);
}
}.start();
有关详细信息,请参阅此 - > http://developer.android.com/reference/android/os/CountDownTimer.html
答案 2 :(得分:0)
你可以使用" Handler"在这
在onCreate中创建一个处理程序
`String[] arr = {R.string.value1, R.string.value2,R.string.value3,R.string.value4,R.string.value5};`
Handler mHandler = new Handler();
现在创建一个Thread并使用while循环来定期使用线程的sleep方法执行任务。
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<5;i++){
try {
Thread.sleep(5000);
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
textView.setText(arr[i])
}
});
} catch (Exception e) {
// TODO: handle exception
}
}
}
}).start();