summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2013-04-10 11:27:08 -0700
committerAdam Powell <adamp@google.com>2013-04-10 11:27:08 -0700
commit72d574cbe0448f125e452140f13dce20e02ed960 (patch)
tree450c6098f9fb8128452251695d613449b73cc17f
parent8f980e1a5ae99d5e34aaef6aac7f38a7d0038631 (diff)
downloadframeworks_base-72d574cbe0448f125e452140f13dce20e02ed960.zip
frameworks_base-72d574cbe0448f125e452140f13dce20e02ed960.tar.gz
frameworks_base-72d574cbe0448f125e452140f13dce20e02ed960.tar.bz2
Permit null adapters in Spinners
Bug 8538144 Change-Id: I83f0ae78ce15f46827fb721cd0df1972b7d9d198
-rw-r--r--core/java/android/widget/Spinner.java29
1 files changed, 16 insertions, 13 deletions
diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java
index b6895a5..e3de0b9 100644
--- a/core/java/android/widget/Spinner.java
+++ b/core/java/android/widget/Spinner.java
@@ -494,20 +494,23 @@ public class Spinner extends AbsSpinner implements OnClickListener {
// Make selected view and position it
mFirstPosition = mSelectedPosition;
- View sel = makeAndAddView(mSelectedPosition);
- int width = sel.getMeasuredWidth();
- int selectedOffset = childrenLeft;
- final int layoutDirection = getLayoutDirection();
- final int absoluteGravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection);
- switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
- case Gravity.CENTER_HORIZONTAL:
- selectedOffset = childrenLeft + (childrenWidth / 2) - (width / 2);
- break;
- case Gravity.RIGHT:
- selectedOffset = childrenLeft + childrenWidth - width;
- break;
+
+ if (mAdapter != null) {
+ View sel = makeAndAddView(mSelectedPosition);
+ int width = sel.getMeasuredWidth();
+ int selectedOffset = childrenLeft;
+ final int layoutDirection = getLayoutDirection();
+ final int absoluteGravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection);
+ switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
+ case Gravity.CENTER_HORIZONTAL:
+ selectedOffset = childrenLeft + (childrenWidth / 2) - (width / 2);
+ break;
+ case Gravity.RIGHT:
+ selectedOffset = childrenLeft + childrenWidth - width;
+ break;
+ }
+ sel.offsetLeftAndRight(selectedOffset);
}
- sel.offsetLeftAndRight(selectedOffset);
// Flush any cached views that did not get reused above
mRecycler.clear();