Android从另一个类更改TextView文本

时间:2012-08-04 09:52:59

标签: java android android-activity

我在TextView中有MainActivity,我想更改另一个班级中的TextView文字。

如何从其他班级访问TextView中的MainActivity

我尝试了以下

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

textView.setText( “文本”);

但是,在调用setText()

时应用程序崩溃了

3 个答案:

答案 0 :(得分:8)

你必须使用 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);    
                }
            });
        }
    }

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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