java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
я получаю эту ошибку при выполнении этого кода:Как я могу получить ошибку NullException, если я проверяю, что два элемента не являются нулевыми?
if (listView != null && adapter != null) {
listView.setAdapter(adapter);
}
Вот полный трассировки стека:
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:337)
at android.widget.ListView.setAdapter(ListView.java:491)
at com.themorrisonagency.gcocommuter.RideFragmentPage.setUserVisibleHint(RideFragmentPage.java:94)
at android.support.v4.app.FragmentStatePagerAdapter.setPrimaryItem(FragmentStatePagerAdapter.java:157)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1270)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1120)
at android.support.v4.view.ViewPager$3.run(ViewPager.java:277)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:603)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5491)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Вот где я инициализирует адаптер:
public RideMatchesAdapter(Context context, int resource, List<Ride> objects)
{
super(context, resource, objects);
if (objects != null) {
activityContext = context;
layoutResource = resource;
this.rideList = objects;
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() /1024);
final int cacheSize = maxMemory/8;
} else {
Log.e(TAG, "objects cannot be null");
}
}
Также попытался проверить, нет ли моего внутреннего списка. Все еще бросая исключение:
public int getCount(){
if(this.rideList != null){
return this.rideList.size();
} else {
return 0;
}
}
пустая ссылка исключение не происходит именно там, если вы не бежите старый код. У вас есть стек? Он говорит что-то о 'java.util.List.size()'. Является ли адаптер обычным? –
Спасибо за быстрый ответ. Этот оператор if помещается в метод setUserVisibleHint. – dawoodman71
Вы должны сделать нулевую проверку перед созданием объекта 'RideMatchesAdapter'. Создайте этот объект и установите этот адаптер в свой список только в том случае, если 'List' не является нулевым. –