gpt4 book ai didi

android - RecyclerView.ViewHolder 无法使用 ButterKnife 绑定(bind) View

转载 作者:IT老高 更新时间:2023-10-28 22:09:26 26 4
gpt4 key购买 nike

我正在使用 ButterKnife 将我的 View 绑定(bind)到我的 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 什么都不做。它们都是空的。我可以肯定地确认它们在我的布局中。我上面的代码有什么问题?我已按照此处列出的文档使用它:

http://jakewharton.github.io/butterknife/#reset

还有什么要求吗?我正在使用 ButterKnife 版本:

compile 'com.jakewharton:butterknife:8.2.1'

如果我添加以下行:

rowHeaderView = view.findViewById(R.id.row_header_view);

它能够正确获取 View 。但这有什么意义呢? ButterKnifefindViewById 可用的地方不可用吗?

最佳答案

2016 年 10 月更新:您可能不再需要 apt 和 android-apt 插件。 Android Gradle 插件 2.2 版有一个 annotationProcessor 配置,您应该改用它。

在 Android Studio 2.2 以后,只需将这些添加到您的 build.gradle 模块中:

compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

关于android - RecyclerView.ViewHolder 无法使用 ButterKnife 绑定(bind) View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38418482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com