今天在使用RecyclerView时遇到了一些异常情况,记录下。
在布局中添加了RecyclerView,如下:
<android.support.v7.widget.RecyclerView
android:id="@+id/hlv_hour_forecast"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</android.support.v7.widget.RecyclerView>
若在代码中无使用到RecyclerView(只是在layout上显示数据,还没绑定数据时),即没有在onCreate()方法中添加如下的代码
hlv = (RecyclerView) view.findViewById(R.id.hlv_hour_forecast);
horizontalAdapter = new ForecastHourAdapter(getActivity(), lists);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
hlv.setLayoutManager(layoutManager);
hlv.setAdapter(horizontalAdapter);
运行项目,会报如下的错误:
07-14 10:54:15.987 18583-18583/com.gjg.learn.sevenweather E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1694)
特别注意的是,在使用RecyclerView时,必须在setAdapter之前加上如下的代码:
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);