findViewById - ButterKnife
小技巧
final View header = getLayoutInflater().inflate(R.layout.content_home, null); listView.addHeaderView(header);class HeaderViewHolder { @Bind(R.id.textView) TextView textView; // 通过构造函数来初始化ButterKnife public HeaderViewHolder(View view) { ButterKnife.bind(this, view); } // 在Activity/Fragment的onDestroy里一定要调用unBind方法 public void unBind() { ButterKnife.unbind(this); } @OnClick(R.id.button) public void onButtonClicked(View view) { // 将点击事件传递给Activity MainActivity.this.onButtonClicked(view); } }final View header = getLayoutInflater().inflate(R.layout.content_home, null); HeaderViewHolder headerViewHolder = new HeaderViewHolder(header); listView.addHeaderView(header); headerViewHolder.textView.setText("text");public void onButtonClicked(View view) { showToast("clicked"); }@Override public void onDestroy() { headerViewHolder.unBind(); super.onDestroy(); }/** * 利用ButterKnife与内部类做额外布局的控件查找 */ public class BaseInnerViewHolder { public BaseInnerViewHolder(View view) { ButterKnife.bind(this, view); } public void unBind() { ButterKnife.unbind(this); } }class HeaderViewHolder extends BaseInnerViewHolder { @Bind(R.id.textView) TextView textView; public HeaderViewHolder(View view) { super(view); } @OnClick(R.id.button) public void onButtonClicked(View view) { MainActivity.this.onButtonClicked(view); } }
Last updated