gpt4 book ai didi

android - 将空 View 传递给 RecyclerView.ViewHolder 会在调用 super 时使应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 17:18:34 24 4
gpt4 key购买 nike

因为我正在为我的 RecyclerView.ViewHolder 以编程方式创建我的 View ,所以我不需要在 onCreateViewHolder 中将任何 View 传递给它,但是当它调用 super 它时因此错误而崩溃:

IllegalArgumentException: itemView may not be null

这是一些代码:

        @Override
public ImagePreviewViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ImagePreviewViewHolder(null);
}


protected class ImagePreviewViewHolder extends RecyclerView.ViewHolder {
public LinearLayout page;
public ImageView imageView;

public ImagePreviewViewHolder(View itemView) {
super(itemView); // HERE IT CRASHES
page = createPage();
imageView = createImageView();
page.addView(imageView);
}
}

@DanailAlexiev,这是你的意思吗:

    @Override
public ImagePreviewViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LinearLayout page = createPage();
ImageView imageView = createImageView();
page.addView(imageView);
return new ImagePreviewViewHolder(page);
}

protected class ImagePreviewViewHolder extends RecyclerView.ViewHolder {

LinearLayout page;
ImageView imageView;

public ImagePreviewViewHolder(View itemView) {
super(itemView);
page = (LinearLayout) itemView;
imageView = (ImageView) page.getChildAt(0);
}
}

最佳答案

ViewHolder 在内部使用了 itemView 引用。不能为空。

您应该做的是将 View 创建逻辑移动到 onCreateViewHolder() 并将创建的 View 传递给您的 ViewHolder 实例。

关于android - 将空 View 传递给 RecyclerView.ViewHolder 会在调用 super 时使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37652899/

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