0

如果我的 OOP 应用程序不正确,请纠正我。我有一个自定义的 Android 类/src/myworkspace/MyObject.java,它不扩展任何东西。

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 回答