我在TextView
中有MainActivity
,我想更改另一个班级中的TextView
文字。
如何从其他班级访问TextView
中的MainActivity
?
我尝试了以下
TextView textView =(TextView)findViewById(R.id.myTextView);
textView.setText( “文本”);
但是,在调用setText()
答案 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线程。