我使用 ButterKnife
将视图绑定到我的 ViewHolder
上。以下是我的代码:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<DataObject> data;
public MyAdapter(List<DataObject> data) {
this.data = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_layout, parent, false);
return new ViewHolder(view);
}
public static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.row_header_view) View rowHeaderView;
@BindView(R.id.row_header_view_text) TextView headerTextView;
@BindView(R.id.row_data_view) View rowDataView;
@BindView(R.id.row_data_view_text) TextView rowDataTextView;
@BindView(R.id.row_data_view_detail_text) TextView rowDataDetailTextView;
public ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
出于某些原因,在我的ViewHolder
中,所有的BindView
都没有起作用。它们都是null。我可以肯定地确认它们存在于我的布局中。我的代码有什么问题?我已经按照这里列出的文档使用了它:
http://jakewharton.github.io/butterknife/#reset
是否还需要其他东西? 我正在使用ButterKnife
版本:
compile 'com.jakewharton:butterknife:8.2.1'
如果我添加如下行:rowHeaderView = view.findViewById(R.id.row_header_view);
可以正确地获取视图。但这有什么意义呢?ButterKnife
不是在findViewById
适用的地方同样适用吗?
module.build
中应用这样的插件apply plugin: 'android-apt'
? - Harshad Pansuriya