目前我有一个自定义视图:
public class MyView extends View {
public MyView(Context c, AttributeSet attrs) {
super(context, attrs);
}
....
....
}
现在,我想访问一个与 Android 无关的对象,比如数据库连接,我该怎么做?我目前的解决方案是执行以下操作
public class MyView extends View {
DBConnection connection;
public MyView(Context c, AttributeSet attrs) {
super(context, attrs);
}
....
....
public void setDBConnection(DBConnection c)
this.connection = c;
}
public void onDraw(Canvas canvas) {
this.connection.ensureUser();
...
....
}
我的问题是有没有更好的方法来做到这一点?目前我需要设置(通过设置器)以确保设置将在MyView
类中使用的对象,上面的代码片段有效,但我不知道这是否是优雅/流行的方法?
我正在考虑通过构造函数传递对象,但我不能这样做,因为Android只调用MyView(Context c, AttributeSets attrs)
构造函数,如果我有它就不会调用版本MyView(Context c, AttributeSets attrs, DBConnection db)
。
请帮忙