我正在尝试在{strong> 2 和 3 之间更改SpanCount
的{{1}}(网格中的列数)。
在GridLayoutManager
中设置SpanCount
onCreate()
使用 if (getActivity() != null)
layoutManager = new GridLayoutManager(getActivity(), getPreferenceSpanCount(getActivity()));
保存SpanCount
并更改SharedPreferences
(Layout
行)取决于RecyclerView
:
SpanCount
获取使用private int getSpanCount() {
if (getPreferenceSpanCount(getActivity()) == 2) {
return R.layout.pic_items_two;
} else {
return R.layout.picture_item;
}
}
保存的SpanCount
:
SharedPreferences
在我获取数据时设置public static Integer getPreferenceSpanCount(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SettingsActivity.SHARED_PREFS_SPAN_COUNT, MODE_PRIVATE);
return sharedPreferences.getInt(SettingsActivity.KEY_SPAN_COUNT, 3);
}
:
SpanCount
一切正常,但是我在Google Play控制台中的ANR和崩溃下得到了很多报告:
java.lang.NullPointerException:在 maa.app.Fragments.fragmentAnime $ 3.onSuccess(fragmentAnime.java:87)
在maa.app.Fragments.fragmentAnime $ 6.a(fragmentAnime.java:52)在 maa.app.Fragments.fragmentAnime $ 6.onResponse(fragmentAnime.java:2)
在com.android.volley.request.StringRequest.c(StringRequest.java:4)
在com.android.volley.request.StringRequest.a(StringRequest.java:2)
在com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run (ExecutorDelivery.java:30)位于android.os.Handler.handleCallback (Handler.java:789)位于android.os.Handler.dispatchMessage (Handler.java:98)位于android.os.Looper.loop(Looper.java:164)位于 android.app.ActivityThread.main(ActivityThread.java:6944)位于 java.lang.reflect.Method.invoke(Method.java)在 com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:327)在com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)