From dcb28fff5806001a209b076c3c3a99b5f3ab4b4d Mon Sep 17 00:00:00 2001 From: Michael Kwan Date: Tue, 24 May 2016 13:04:16 -0700 Subject: [PATCH] Fixed issue where ListView checked state did not account for ListView header. Bug: 17733928 Change-Id: If8e9daa9c9538ac86493045bc597461b44a2f823 --- .../java/com/android/internal/app/AlertController.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/java/com/android/internal/app/AlertController.java b/core/java/com/android/internal/app/AlertController.java index 8e101d0823fae..c5ed29ff7688e 100644 --- a/core/java/com/android/internal/app/AlertController.java +++ b/core/java/com/android/internal/app/AlertController.java @@ -886,8 +886,8 @@ public class AlertController { listView.setAdapter(mAdapter); final int checkedItem = mCheckedItem; if (checkedItem > -1) { - listView.setItemChecked(checkedItem, true); - listView.setSelection(checkedItem); + listView.setItemChecked(checkedItem + listView.getHeaderViewsCount(), true); + listView.setSelection(checkedItem + listView.getHeaderViewsCount()); } } } @@ -1066,7 +1066,8 @@ public class AlertController { if (mCheckedItems != null) { boolean isItemChecked = mCheckedItems[position]; if (isItemChecked) { - listView.setItemChecked(position, true); + listView.setItemChecked( + position + listView.getHeaderViewsCount(), true); } } return view; @@ -1087,7 +1088,8 @@ public class AlertController { public void bindView(View view, Context context, Cursor cursor) { CheckedTextView text = (CheckedTextView) view.findViewById(R.id.text1); text.setText(cursor.getString(mLabelIndex)); - listView.setItemChecked(cursor.getPosition(), + listView.setItemChecked( + cursor.getPosition() + listView.getHeaderViewsCount(), cursor.getInt(mIsCheckedIndex) == 1); }