0

我有一个活动类 A,它有几个 TextViews 作为其成员变量。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?");
    }
}
4

1 回答 1

0

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

您也可以使用Handler. Handler您在 an 中定义 aActivity并将消息从您想要的任何地方发布到该处理程序。然后将在主线程上处理它们。

它可能仅在您的活动可见并且另一个类正在运行某个线程时才有意义,因此您的视图在可见时会得到更新。否则,如果 Activity 不可见,您可以将视图设置为onResumeonStart

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

编辑:在您发布的代码中,您为什么需要B

于 2012-09-20T06:50:28.887 回答