Android从另一个类更改TextView文本
我在MainActivity
有一个TextView
,我想在另一个类中更改TextView
文本。
如何从另一个类访问MainActivity
TextView
?
我尝试了以下内容
TextView textView =(TextView)findViewById(R.id.myTextView);
textView.setText( “文本”);
但调用setText()
时应用程序崩溃
你必须使用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); } }); } }
如果要更新TextView的文本,可能的方法是编辑由类共享的公共数据模型中的文本。 如果稍后调用活动的onResume
,它可以从模型中读取新值并更新TextView。
我建议使用处理程序来更新该Activity的内容。 这只是一种方法,有多种方法可以做到这一点。
句柄的整个目的是让一些后台进程/线程将信息传递到UI线程中。