0

OOP アプリケーションが正しくない場合は、修正してください。/src/myworkspace/MyObject.java何も拡張しないカスタム Android クラスがあります。

public class MyObject {
  ...

  public void methodOne() {
    ...
  }
}

メイン アクティビティ内でMyObject.methodOne()呼び出されます。
methodOne でビュー オブジェクトを操作するにはどうすればよいですか?
たとえば、次のようなもの

mButton = (Button) findViewById(R.id.button_one);
mButton.setOnClickListener(mButtonListener);

MyObject のメソッドは、多くのアクティビティで再利用されます。このアプローチが正しくない場合、反復可能なコードをどこに保存する必要がありますか?

4

1 に答える 1

1

MyObject がビューをパラメーターとして受け取ることをお勧めします。

public class MyObject {
...
  public void methodOne(Button button) {
   ...
  }
}

あなたの活動からこのように呼び出すだけです:

... activity code ....
MyObject obj = new MyObject();
Button button = (Button) findViewById(R.id.button_one);
obj.methodOne(button);
.... more activity code.

他のアプローチも使用できます。

コンストラクターで MyObject をアクティビティにバインドします。

MyObject(Activity owner) {
   .. assign activity to member
}

Object をネストされた内部クラスとして使用します。

 Activity
   class MyObject {

それぞれにメリットや落とし穴があります。私は個人的にはパラメーターでビューを渡すことに固執します。これは最も疎結合であり、IMO は最も単純でエラーが発生しにくいものです。

于 2013-06-02T17:12:14.930 に答える