如何使用Handler在字符串数组N秒后修改textview文本?

问题描述 投票:-2回答:3

我想在n秒后使用handler更改textview的文本。各种字符串存在于字符串数组中。 (在UI上更新文本视图)

以下代码使应用程序每次都崩溃。该怎么办?

公共类Main2Activity扩展AppCompatActivity {

TextView textView;
Handler handler = new Handler();
String[] arr = getResources().getStringArray(R.array.wat1);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    textView = (TextView)findViewById(R.id.textView);

    Runnable r = new Runnable() {
        int len = arr.length;
        @Override
        public void run() {
            textView.setText(arr[len-1]);
            len--;
            if(len!=0){
                handler.postDelayed(this,2000);
            }
        }
    };
    handler.post(r);
}

}

java android handler
3个回答
0
投票
new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            textView.setText(yourArray[0]); //set text here
        }
    }, 1000); //1000 = 1 second

0
投票

使用处理程序

Handler handler = new Handler(Looper.getMainLooper());
handper.postDelayed(runnable, 3000);

如果runnable是您更改文本的操作,则3000是以毫秒为单位的时间,其中3000等于3秒。


0
投票

试试这个::

        textView.postDelayed(new Runnable() {
            @Override
            public void run() {
                // set text 
                textView.setText("Text");

            }
        },300) // Time in millisecond
© www.soinside.com 2019 - 2024. All rights reserved.