每5秒更改一次TextView

时间:2015-07-27 17:27:12

标签: java android

在我的strings.xml中,我有5个带文本的字符串。我希望能够每5秒更改一次TextView的内容。

示例:

前5秒TextView将显示第一个字符串的内容,然后接下来的五秒钟将显示第二个字符串。在第五个字符串之后,它将再次显示第一个字符串。

对于这个糟糕的描述感到抱歉,我是Java新手。

3 个答案:

答案 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();