Merge "Fix bug 6065890 - Correct callback sequence for action bar tab switching"

This commit is contained in:
Adam Powell
2012-02-24 19:50:11 -08:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 7 deletions

View File

@@ -282,6 +282,13 @@ public class Spinner extends AbsSpinner implements OnClickListener {
throw new RuntimeException("setOnItemClickListener cannot be used with a spinner.");
}
/**
* @hide internal use only
*/
public void setOnItemClickListenerInt(OnItemClickListener l) {
super.setOnItemClickListener(l);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
@@ -707,6 +714,9 @@ public class Spinner extends AbsSpinner implements OnClickListener {
public void onClick(DialogInterface dialog, int which) {
setSelection(which);
if (mOnItemClickListener != null) {
performItemClick(null, which, mListAdapter.getItemId(which));
}
dismiss();
}
}
@@ -724,6 +734,9 @@ public class Spinner extends AbsSpinner implements OnClickListener {
setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
Spinner.this.setSelection(position);
if (mOnItemClickListener != null) {
Spinner.this.performItemClick(null, position, mAdapter.getItemId(position));
}
dismiss();
}
});

View File

@@ -45,7 +45,7 @@ import android.widget.TextView;
* across different configurations or circumstances.
*/
public class ScrollingTabContainerView extends HorizontalScrollView
implements AdapterView.OnItemSelectedListener {
implements AdapterView.OnItemClickListener {
private static final String TAG = "ScrollingTabContainerView";
Runnable mTabSelector;
private TabClickListener mTabClickListener;
@@ -197,7 +197,7 @@ public class ScrollingTabContainerView extends HorizontalScrollView
com.android.internal.R.attr.actionDropDownStyle);
spinner.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT));
spinner.setOnItemSelectedListener(this);
spinner.setOnItemClickListenerInt(this);
return spinner;
}
@@ -347,15 +347,11 @@ public class ScrollingTabContainerView extends HorizontalScrollView
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TabView tabView = (TabView) view;
tabView.getTab().select();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
private class TabView extends LinearLayout {
private ActionBar.Tab mTab;
private TextView mTextView;