0

メンバー変数としていくつかの TextViews を持つアクティビティ クラス A があります。クラス A には、3 つの TextView の getter メソッドがあります。A の参照をクラス B に渡して、3 つの 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必要Activityな場所からそのハンドラーにメッセージをポストします。その後、メインスレッドで処理されます。

Activity が表示されていて、別のクラスが何らかのスレッドを実行している場合にのみ意味があるため、ビューが表示されている間にビューが更新されます。onResumeそれ以外の場合、アクティビティが表示されない場合は、ビューをまたはに設定できますonStart

この場合、 a を使用してあまりにも多くの依存関係を回避Handlerすることは問題ないようです。

編集:投稿したコードでは、なぜ必要なBのですか?

于 2012-09-20T06:50:28.887 に答える