Merge "Fixed issue where ListView checked state did not account for ListView header." into nyc-mr1-dev

This commit is contained in:
Michael Kwan
2016-05-24 21:27:19 +00:00
committed by Android (Google) Code Review

View File

@@ -886,8 +886,8 @@ public class AlertController {
listView.setAdapter(mAdapter); listView.setAdapter(mAdapter);
final int checkedItem = mCheckedItem; final int checkedItem = mCheckedItem;
if (checkedItem > -1) { if (checkedItem > -1) {
listView.setItemChecked(checkedItem, true); listView.setItemChecked(checkedItem + listView.getHeaderViewsCount(), true);
listView.setSelection(checkedItem); listView.setSelection(checkedItem + listView.getHeaderViewsCount());
} }
} }
} }
@@ -1066,7 +1066,8 @@ public class AlertController {
if (mCheckedItems != null) { if (mCheckedItems != null) {
boolean isItemChecked = mCheckedItems[position]; boolean isItemChecked = mCheckedItems[position];
if (isItemChecked) { if (isItemChecked) {
listView.setItemChecked(position, true); listView.setItemChecked(
position + listView.getHeaderViewsCount(), true);
} }
} }
return view; return view;
@@ -1087,7 +1088,8 @@ public class AlertController {
public void bindView(View view, Context context, Cursor cursor) { public void bindView(View view, Context context, Cursor cursor) {
CheckedTextView text = (CheckedTextView) view.findViewById(R.id.text1); CheckedTextView text = (CheckedTextView) view.findViewById(R.id.text1);
text.setText(cursor.getString(mLabelIndex)); text.setText(cursor.getString(mLabelIndex));
listView.setItemChecked(cursor.getPosition(), listView.setItemChecked(
cursor.getPosition() + listView.getHeaderViewsCount(),
cursor.getInt(mIsCheckedIndex) == 1); cursor.getInt(mIsCheckedIndex) == 1);
} }