diff options
| author | Adam Powell <adamp@google.com> | 2012-08-24 12:43:41 -0700 |
|---|---|---|
| committer | Adam Powell <adamp@google.com> | 2012-08-24 14:51:40 -0700 |
| commit | a798170f2abe198f806b12dd904830bc25257525 (patch) | |
| tree | 53a27cfefee8fc23659af6bed1376a753099707e /core/java/android | |
| parent | 1552586283f329253edc4786a6cf40c5bb69ea36 (diff) | |
More detailed error reporting for AbsListView/CHOICE_MODE_MULTIPLE_MODAL
Throw a more descriptive exception when an app has not set a
multi-choice mode listener and an item becomes checked.
Change-Id: Ib682fd7a467a3751bb81dacbd22676aaa4407d36
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 61c942d15e3b..423135f33f97 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<ListAdapter> 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<ListAdapter> 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? |
