Android:访问活动外部的视图对象
如果我的OOP应用程序不正确,请更正。我在Android:访问活动外部的视图对象,android,oop,coding-style,dry,findviewbyid,Android,Oop,Coding Style,Dry,Findviewbyid,如果我的OOP应用程序不正确,请更正。我在/src/myworkspace/MyObject.java有一个定制的Android类,它不扩展任何内容 public class MyObject { ... public void methodOne() { ... } } 在主活动中,调用了MyObject.methodOne()。 如何在methodOne中操作视图对象? 例如类似于 mButton = (Button) findViewById(R.id.button
/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的方法在许多活动中被重用。如果此方法不正确,应将可重复代码存储在何处 我建议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
}
将对象用作嵌套的内部类
Activity
class MyObject {
每个都有其优点或缺点,我个人会坚持按参数传递视图,它是最松散耦合的,在我看来是最简单和最不容易出错的