Где вызвать метод bind и unbind в пользовательском представлении при использовании ButterKnife?

Я новичок в Android. Я написал собственное представление, но я просто не знаю, куда звонить bind а также unbind метод. Я искал эту документацию. И это, похоже, предлагает использовать bind в onFinishInflate() Перезвоните. Но я bind представление в его функции конструктора и не происходит никакого сбоя. Это правильно? А как насчет unbind? Я нахожу этот вопрос, он предлагает использовать unbind в onDetachedFromWindow() Перезвоните. Это требуется или необходимо?

public class BloodIndicatorView extends FrameLayout {
    @Bind(R.id.ll_record_bloodpress)
    LinearLayout llRecordBloodpress;
    @Bind(R.id.ll_record_bloodsugar)
    LinearLayout llRecordBloodsugar;

    private Context mContext;

    public BloodIndicatorView(Context context) {
        this(context, null);
    }

    public BloodIndicatorView(Context context, AttributeSet attrs) {
        this(context, attrs, -1);
    }

    public BloodIndicatorView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mContext = context;
        init();
    }

    private void init() {
        LayoutInflater.from(mContext).inflate(R.layout.health_blood_indicator, this);
        ButterKnife.bind(this);
    }

    public void update() {

    }

    @OnClick(R.id.ll_record_bloodpress)
    public void recordBloodpress() {
        Intent intent = BloodPressActivity.getIntent2Act(mContext);
        mContext.startActivity(intent);
    }

    @OnClick(R.id.ll_record_bloodsugar)
    public void recordBloodsugar() {
        Intent intent = BloodSugarActivity.getIntent2Act(mContext);
        mContext.startActivity(intent);
    }
}

1 ответ

Вы можете аннотировать представление внутри класса, которое вы делаете правильно, и, поскольку нет ошибки, означающей ButterKnife.bind(this); происходит правильно. И это не обязательно, чтобы отвязать это должно работать совершенно нормально.

Другие вопросы по тегам