Я расширяю ScrollView, и в нем я использовал нестатический блок после конструкторов для инициализации некоторых переменных.
Код
public ScrollViewExtended(Context context) {
super(context);
}
public ScrollViewExtended(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ScrollViewExtended(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public ScrollViewExtended(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
private void init(Context context) {
activity = (Activity) context;
userActivityLogDao = new UserActivityLogDao();
activity_name = activity.getClass().getSimpleName();
}
{
init(getContext());
}
Я не хочу вызывать init(контекст) метод в каждом конструкторе.Вот почему я использовал нестатический блок.Можете ли вы предложить, если это правильный способ сделать это?
* Я могу запустить этот код без каких-либо ошибок.