diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 61c942d15e3b6..423135f33f971 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -973,6 +973,12 @@ public abstract class AbsListView extends AdapterView implements Te // Start selection mode if needed. We don't need to if we're unchecking something. if (value && mChoiceMode == CHOICE_MODE_MULTIPLE_MODAL && mChoiceActionMode == null) { + if (mMultiChoiceModeCallback == null || + !mMultiChoiceModeCallback.hasWrappedCallback()) { + throw new IllegalStateException("AbsListView: attempted to start selection mode " + + "for CHOICE_MODE_MULTIPLE_MODAL but no choice mode callback was " + + "supplied. Call setMultiChoiceModeListener to set a callback."); + } mChoiceActionMode = startActionMode(mMultiChoiceModeCallback); } @@ -5945,6 +5951,10 @@ public abstract class AbsListView extends AdapterView implements Te mWrapped = wrapped; } + public boolean hasWrappedCallback() { + return mWrapped != null; + } + public boolean onCreateActionMode(ActionMode mode, Menu menu) { if (mWrapped.onCreateActionMode(mode, menu)) { // Initialize checked graphic state?