【问题标题】:Get nullpointerexception while inflating in custom adapter of RecyclerView在 RecyclerView 的自定义适配器中充气时获取 nullpointerexception
【发布时间】:2017-07-08 06:40:00
【问题描述】:

这是我的适配器的 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);

我调试了函数但没有任何内容为空,所以我不明白是什么导致了问题?

【问题讨论】:

    标签: android nullpointerexception android-recyclerview layout-inflater


    【解决方案1】:

    我也遇到了这个问题,我的问题是在我的项目布局中我放置了 <View> 元素但没有大写 V 并且编译器没有抱怨

     <view
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1" />
    

    【讨论】:

      【解决方案2】:

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

      仅供参考

      Java try 块用于封装可能抛出异常的代码 例外。所以不需要在这里创建 try-catch 块。

      你可以试试

      View viewOBJ = LayoutInflater.from(parent.getContext()).inflate(R.layout.faviorate_video_item, parent, false);
      ViewHolder viewHolderOBJ = new ViewHolder(viewOBJ);
      return viewHolderOBJ;
      

      【讨论】:

      • @user3422607 同样的问题??
      • java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean java.lang.String.equals(java.lang.Object)”
      • 用代码显示行号。用!= null添加字符串检查
      • @user3422607 在问题部分添加此内容。
      【解决方案3】:

      根据您的错误行,我猜它可能是:

      1. 您的项目布局
      2. 您的数据

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

      【讨论】:

      • 就是这样!我的项目布局有一个愚蠢的错误,非常感谢
      【解决方案4】:

      请移除 try 块。如下所示

      @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);
      
      
      }
      

      【讨论】:

      • 一开始没有那个块,为什么要解决?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多