diff options
author | Amith Yamasani <yamasani@google.com> | 2011-09-29 16:48:55 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-29 16:48:55 -0700 |
commit | 966222ef24a5d746e4fa84c8ea8bc2e718c78042 (patch) | |
tree | 75524ff9ede0e27f9a9a5d1c777663dec1c6bc01 | |
parent | 1e70aa94c1caa9bac3b412ae04c9f96ebd853b4f (diff) | |
parent | 2d43d283fc0f22b08f43c6db4da71031168e7f59 (diff) | |
download | frameworks_base-966222ef24a5d746e4fa84c8ea8bc2e718c78042.zip frameworks_base-966222ef24a5d746e4fa84c8ea8bc2e718c78042.tar.gz frameworks_base-966222ef24a5d746e4fa84c8ea8bc2e718c78042.tar.bz2 |
Merge "Handle the case of Preference lists that have header views inserted at the top."
-rw-r--r-- | core/java/android/preference/PreferenceScreen.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/core/java/android/preference/PreferenceScreen.java b/core/java/android/preference/PreferenceScreen.java index dd9dd25..8b99459 100644 --- a/core/java/android/preference/PreferenceScreen.java +++ b/core/java/android/preference/PreferenceScreen.java @@ -26,6 +26,7 @@ import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.view.Window; +import android.widget.AbsListView; import android.widget.Adapter; import android.widget.AdapterView; import android.widget.ListAdapter; @@ -190,9 +191,13 @@ public final class PreferenceScreen extends PreferenceGroup implements AdapterVi } public void onItemClick(AdapterView parent, View view, int position, long id) { + // If the list has headers, subtract them from the index. + if (parent instanceof ListView) { + position -= ((ListView) parent).getHeaderViewsCount(); + } Object item = getRootAdapter().getItem(position); if (!(item instanceof Preference)) return; - + final Preference preference = (Preference) item; preference.performClick(this); } |