【问题标题】:Android Change TextView text from another classAndroid 从另一个类更改 TextView 文本
【发布时间】:2012-08-04 09:52:58
【问题描述】:

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

如何从另一个班级访问MainActivity 中的TextView

我尝试了以下

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

textView.setText("文本");

但调用setText()时应用崩溃

【问题讨论】:

标签: java android android-activity


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多