如何在android中显示对话框功能中使用butterknife的Bind()

时间:2016-12-17 04:15:02

标签: android butterknife

这是我的showDialog函数,当有人点击活动中的按钮时会调用它。

private void showCouponCodeDialog() {

    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialoge_apply_coupon);
    dialog.setTitle(R.string.coupon_code);

    final ProgressBar progressBar = (ProgressBar) dialog.findViewById(R.id.progressBar);
    progressBar.setVisibility(View.GONE);
    Button btnApplyCoupon = (Button) dialog.findViewById(R.id.btnApplyCoupon);
    btnApplyCoupon.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            progressBar.setVisibility(View.VISIBLE);

        }
    });
    dialog.show();
}

当我做的时候

@Bind(R.id.progressBar) ProgressBar progressBar;

它给出错误@Bind不适用于局部变量。

这很好用。

final ProgressBar progressBar = (ProgressBar) dialog.findViewById(R.id.progressBar);

在这种情况下如何使用butterknief的Bind()?

1 个答案:

答案 0 :(得分:0)

使用Butterknife您可以使用此类绑定方法:

Butterknife.bind(Dialog dialog)

Butterknife.bind (@NonNull Object target, @NonNull Dialog source)

第二个更好,因为它暗示,哪个(在哪个类中)绑定被保持。请记住,这些函数返回Unbinder并且当对话框被销毁时解除绑定非常重要,否则可能会发生内存泄漏。