diff options
| author | Felipe Leme <felipeal@google.com> | 2017-03-24 21:26:25 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-03-24 21:26:32 +0000 |
| commit | 51707a9733606d50b042f8551a9b806cae77a8e9 (patch) | |
| tree | c9231da689c756810296fc985f47e49b79850a5e /core/java/android | |
| parent | 36a44f070e4e96a16a0d3bf3bc399172aa1fbda7 (diff) | |
| parent | 119205629e81d3a4cc5c419317c43c5ba5e44a51 (diff) | |
Merge "Checks if an adapter item is null before addint it to options."
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/widget/AbsSpinner.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/core/java/android/widget/AbsSpinner.java b/core/java/android/widget/AbsSpinner.java index fae574289b88..8f662ba79d5f 100644 --- a/core/java/android/widget/AbsSpinner.java +++ b/core/java/android/widget/AbsSpinner.java @@ -498,18 +498,30 @@ public abstract class AbsSpinner extends AdapterView<SpinnerAdapter> { public void onProvideAutofillStructure(ViewStructure structure, int flags) { super.onProvideAutofillStructure(structure, flags); - if (getAdapter() == null) return; + final SpinnerAdapter adapter = getAdapter(); + + if (adapter == null) return; // TODO(b/33197203): implement sanitization so initial value is only sanitized when coming // from resources. - final int count = getAdapter().getCount(); + final int count = adapter.getCount(); + int size = 0; if (count > 0) { final String[] options = new String[count]; for (int i = 0; i < count; i++) { - options[i] = getAdapter().getItem(i).toString(); + final Object item = adapter.getItem(i); + if (item != null) { + options[size++] = item.toString(); + } + } + if (size == count) { + structure.setAutofillOptions(options); + } else { + final String[] validOptions = new String[size]; + System.arraycopy(options, 0, validOptions, 0, size); + structure.setAutofillOptions(validOptions); } - structure.setAutofillOptions(options); } } |
