В настоящее время у меня есть собственное представление:
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();
...
....
}
Мой вопрос заключается в том, есть ли лучший способ сделать это?В настоящее время мне нужно установить (через setter), чтобы убедиться, что объект, который будет использоваться в классе MyView
, установлен, фрагмент кода выше работает, но я не знаю, является ли это элегантным / популярным подходом?
Я думаю передать объект через конструктор, но я не могу этого сделать, потому что Android вызывает только конструктор MyView(Context c, AttributeSets attrs)
, он не будет вызывать версию, если у меня есть MyView(Context c, AttributeSets attrs, DBConnection db)
one.
пожалуйста, помогите