我有一个活动类A,它有一些TextView作为其成员变量。 A类具有三个TextView的getter方法。我可以将A的引用传递给B类并修改三个TextView吗?这是一个很好的编程实践吗?
编辑:代码 -
A类
public class A extends Activity {
private TextView tv1;
private TextView tv2;
private TextView tv3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// initialize tv1, tv2, tv3 here
// Pass a referce of A to B.
new B(this);
}
public TextView getTv1() {
return tv1;
}
public TextView getTv2() {
return tv2;
}
public TextView getTv3() {
return tv3;
}
}
B类 -
public class B {
public B(A a){
a.getTv1().setText("Is");
a.getTv2().setText("this");
a.getTv3().setText("correct?");
}
}
答案 0 :(得分:0)
你可以,你只需要确保你在主线程上对Views
做的任何事情。从其他一些主题中,您可以使用runOnUiThread
。
您还可以使用Handler
。您可以在Handler
中定义Activity
,并根据需要将消息发布到该处理程序。然后它们将在主线程上处理。
当您的Activity可见并且另一个类正在运行某个线程时,它可能才有意义,因此您的Views在可见时会更新。否则,如果“活动”不可见,您只需在onResume
或onStart
在这种情况下,仍然要避免使用Handler
过多的依赖关系似乎没问题。
修改:在您发布的代码中,为什么还需要B
?