代码之家  ›  专栏  ›  技术社区  ›  user3422607

在RecyclerView的自定义适配器中充气时获取nullpointerexception

  •  2
  • user3422607  · 技术社区  · 7 年前

    这是我的适配器的onCreateViewHolder:

        @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        try
        {
            LayoutInflater inflater = LayoutInflater.from(parent.getContext());
            View v = inflater.inflate(R.layout.faviorate_video_item, parent, false);
            return new ViewHolder(v);
        }
        catch (Exception e)
        {
            return  null ;
        }
    
    }
    

    这行抛出NullPointException:

        LayoutInflater.from(parent.getContext());
            View v = inflater.inflate(R.layout.faviorate_video_item, parent, false);
    

    我调试了这个函数,但并没有一个是空的,所以我不明白是什么导致了这个问题?

    4 回复  |  直到 7 年前
        1
  •  3
  •   estn    7 年前

    我也遇到了这个问题,我的问题是在我的项目布局中 <View>

     <view
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1" />
    
        2
  •  2
  •   IntelliJ Amiya    7 年前

    当应用程序尝试使用 具有null值的对象引用。

    供参考

    例外因此无需创建 尝试捕捉 在这里封锁。

    你可以试试

    View viewOBJ = LayoutInflater.from(parent.getContext()).inflate(R.layout.faviorate_video_item, parent, false);
    ViewHolder viewHolderOBJ = new ViewHolder(viewOBJ);
    return viewHolderOBJ;
    
        3
  •  1
  •   sasan    7 年前

    1. 您的项目布局

    如果其中一个(很可能是第一个)导致了问题,您可能会在充气时出现不相关的错误。所以我建议先检查一下

        4
  •  1
  •   Mehul Kabaria    7 年前

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    
            LayoutInflater inflater = LayoutInflater.from(parent.getContext());
            View v = inflater.inflate(R.layout.faviorate_video_item, parent, false);
            return new ViewHolder(v);
    
    
    }