2016-12-17 41 views
1

這是我的showDialog函數,當有人點擊活動中的按鈕時,該函數可以調用。如何使用butterknife的綁定()在android中的顯示對話框功能

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

或者,您可以將'progressBar'聲明爲一個字段而不是局部變量。 –

+0

但progreeBar不是活動的一部分。但是是R.layout.dialoge_apply_coupon。 –

+0

你必須將你的視圖與'context'一起使用'Butterknife' – rookieDeveloper

回答

0

使用Butterknife您可以使用這種方法綁定:

Butterknife.bind(Dialog dialog) 

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

第二個是更好,因爲它表明,在那裏(其中類)結合的保持。請記住,那些函數返回Unbinder,並且當對話被銷燬時,它實際上是非常重要的解除綁定,否則可能會發生內存泄漏。