传递活动并修改其视图

时间:2012-09-20 06:28:25

标签: android oop

我有一个活动类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?");
    }
}

1 个答案:

答案 0 :(得分:0)

你可以,你只需要确保你在主线程上对Views做的任何事情。从其他一些主题中,您可以使用runOnUiThread

您还可以使用Handler。您可以在Handler中定义Activity,并根据需要将消息发布到该处理程序。然后它们将在主线程上处理。

当您的Activity可见并且另一个类正在运行某个线程时,它可能才有意义,因此您的Views在可见时会更新。否则,如果“活动”不可见,您只需在onResumeonStart

中设置自己的观看次数即可

在这种情况下,仍然要避免使用Handler过多的依赖关系似乎没问题。

修改:在您发布的代码中,为什么还需要B