diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 097e859e460b9..1a9c0df5735b7 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -455,6 +455,12 @@ public class ListView extends AbsListView { checkSelectionChanged(); } + if (mChoiceMode != CHOICE_MODE_NONE && + mAdapter.hasStableIds() && + mCheckedIdStates == null) { + mCheckedIdStates = new LongSparseArray(); + } + } else { mAreAllItemsSelectable = true; checkFocus(); @@ -3320,7 +3326,7 @@ public class ListView extends AbsListView { if (mCheckStates == null) { mCheckStates = new SparseBooleanArray(); } - if (mCheckedIdStates == null && mAdapter.hasStableIds()) { + if (mCheckedIdStates == null && mAdapter != null && mAdapter.hasStableIds()) { mCheckedIdStates = new LongSparseArray(); } }