summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2011-09-29 16:48:55 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-29 16:48:55 -0700
commit966222ef24a5d746e4fa84c8ea8bc2e718c78042 (patch)
tree75524ff9ede0e27f9a9a5d1c777663dec1c6bc01
parent1e70aa94c1caa9bac3b412ae04c9f96ebd853b4f (diff)
parent2d43d283fc0f22b08f43c6db4da71031168e7f59 (diff)
downloadframeworks_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.java7
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);
}