3

我有一个TextViewin MainActivity,我想TextView在另一个类中更改文本。

我怎样才能从另一个班级TextView进入?MainActivity

我尝试了以下

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

textView.setText("文本");

但是应用程序在调用时崩溃setText()

4

3 回答 3

9

你必须使用runOnUiThread(new Runnable()...

请参阅以下内容:

import android.content.Context;

private class AnotherClass {
        protected MainActivity context;

        public AnotherClass(Context context){
            this.context = (MainActivity) context;
        }

        public void updateTV(final String str1){
            context.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    context.textView.setText(str1);    
                }
            });
        }
    }
于 2012-08-04T10:03:03.313 回答
2

如果您想更新 TextView 的文本,一种可能的方法是在您的类共享的公共数据模型中编辑文本。如果onResume稍后从活动中调用它,它可以从模型中读取新值并更新 TextView。

于 2012-08-04T09:58:23.297 回答
1

我建议使用处理程序来更新该活动的内容。这只是一种方法,有多种方法可以做到这一点。

句柄的全部目的是让一些后台进程/线程将信息传递到 UI 线程。

于 2012-08-04T09:57:16.123 回答