diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-08-17 11:07:08 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-08-17 11:07:08 -0700 |
commit | 54ba86f0e236a55fb4dc3aabbd81078f586321a5 (patch) | |
tree | 2e1c53db8f45e510b8fab9cc408a212c33c123d0 /core | |
parent | 9dc2355b9bdfdaadb72936b5ad865193a2af58c8 (diff) | |
parent | dd753ae6115fdcb389b5abd8320245228b2e1d2d (diff) | |
download | frameworks_base-54ba86f0e236a55fb4dc3aabbd81078f586321a5.zip frameworks_base-54ba86f0e236a55fb4dc3aabbd81078f586321a5.tar.gz frameworks_base-54ba86f0e236a55fb4dc3aabbd81078f586321a5.tar.bz2 |
Merge change 21512 into eclair
* changes:
Honor the clickable and enabled properties in ListView.
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/widget/AbsListView.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index eea97dc..b7e8f10 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -1736,14 +1736,21 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: - if (isPressed() && mSelectedPosition >= 0 && mAdapter != null && + if (!isEnabled()) { + return true; + } + // Long clickable items don't necessarily have to be clickable + if (isClickable() && (event.getRepeatCount() == 0) && isPressed() && + mSelectedPosition >= 0 && mAdapter != null && mSelectedPosition < mAdapter.getCount()) { + final View view = getChildAt(mSelectedPosition - mFirstPosition); performItemClick(view, mSelectedPosition, mSelectedRowId); setPressed(false); if (view != null) view.setPressed(false); return true; } + break; } return super.onKeyUp(keyCode, event); } @@ -1892,6 +1899,12 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te @Override public boolean onTouchEvent(MotionEvent ev) { + if (!isEnabled()) { + // A disabled view that is clickable still consumes the touch + // events, it just doesn't respond to them. + return isClickable() || isLongClickable(); + } + if (mFastScroller != null) { boolean intercepted = mFastScroller.onTouchEvent(ev); if (intercepted) { |