Use correct list index for search highlighting

BUG: 14974443
Change-Id: Iad3d3efb2449fc61636c221bde92169293bf5356
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 6cf3330..e87f676 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -230,12 +230,15 @@
                     listView.postDelayed(new Runnable() {
                         @Override
                         public void run() {
-                            final View v = listView.getChildAt(0);
-                            final int centerX = v.getWidth() / 2;
-                            final int centerY = v.getHeight() / 2;
-                            highlight.setHotspot(centerX, centerY);
-                            v.setPressed(true);
-                            v.setPressed(false);
+                            final int index = position - listView.getFirstVisiblePosition();
+                            if (index >= 0 && index < listView.getChildCount()) {
+                                final View v = listView.getChildAt(index);
+                                final int centerX = v.getWidth() / 2;
+                                final int centerY = v.getHeight() / 2;
+                                highlight.setHotspot(centerX, centerY);
+                                v.setPressed(true);
+                                v.setPressed(false);
+                            }
                         }
                     }, DELAY_HIGHLIGHT_DURATION_MILLIS);
                 }