Skip to content

Commit d020ebf

Browse files
adampAndroid (Google) Code Review
authored andcommitted
Merge "Fix bug 6065890 - Correct callback sequence for action bar tab switching"
2 parents 13ff533 + c4e57e2 commit d020ebf

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

core/java/android/widget/Spinner.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,13 @@ public void setOnItemClickListener(OnItemClickListener l) {
282282
throw new RuntimeException("setOnItemClickListener cannot be used with a spinner.");
283283
}
284284

285+
/**
286+
* @hide internal use only
287+
*/
288+
public void setOnItemClickListenerInt(OnItemClickListener l) {
289+
super.setOnItemClickListener(l);
290+
}
291+
285292
@Override
286293
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
287294
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
@@ -707,6 +714,9 @@ public void show() {
707714

708715
public void onClick(DialogInterface dialog, int which) {
709716
setSelection(which);
717+
if (mOnItemClickListener != null) {
718+
performItemClick(null, which, mListAdapter.getItemId(which));
719+
}
710720
dismiss();
711721
}
712722
}
@@ -724,6 +734,9 @@ public DropdownPopup(Context context, AttributeSet attrs, int defStyleRes) {
724734
setOnItemClickListener(new OnItemClickListener() {
725735
public void onItemClick(AdapterView parent, View v, int position, long id) {
726736
Spinner.this.setSelection(position);
737+
if (mOnItemClickListener != null) {
738+
Spinner.this.performItemClick(null, position, mAdapter.getItemId(position));
739+
}
727740
dismiss();
728741
}
729742
});

core/java/com/android/internal/widget/ScrollingTabContainerView.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
* across different configurations or circumstances.
4646
*/
4747
public class ScrollingTabContainerView extends HorizontalScrollView
48-
implements AdapterView.OnItemSelectedListener {
48+
implements AdapterView.OnItemClickListener {
4949
private static final String TAG = "ScrollingTabContainerView";
5050
Runnable mTabSelector;
5151
private TabClickListener mTabClickListener;
@@ -197,7 +197,7 @@ private Spinner createSpinner() {
197197
com.android.internal.R.attr.actionDropDownStyle);
198198
spinner.setLayoutParams(new LinearLayout.LayoutParams(
199199
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT));
200-
spinner.setOnItemSelectedListener(this);
200+
spinner.setOnItemClickListenerInt(this);
201201
return spinner;
202202
}
203203

@@ -347,15 +347,11 @@ public void removeAllTabs() {
347347
}
348348

349349
@Override
350-
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
350+
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
351351
TabView tabView = (TabView) view;
352352
tabView.getTab().select();
353353
}
354354

355-
@Override
356-
public void onNothingSelected(AdapterView<?> parent) {
357-
}
358-
359355
private class TabView extends LinearLayout {
360356
private ActionBar.Tab mTab;
361357
private TextView mTextView;

0 commit comments

Comments
 (0)