Merge "Allow restore instance before setValues() in ListDialogPreference"

This commit is contained in:
Alan Viverette
2014-05-12 19:34:53 +00:00
committed by Android (Google) Code Review

View File

@@ -82,6 +82,10 @@ public abstract class ListDialogPreference extends DialogPreference {
*/ */
public void setValues(int[] values) { public void setValues(int[] values) {
mEntryValues = values; mEntryValues = values;
if (mValueSet && mValueIndex == AbsListView.INVALID_POSITION) {
mValueIndex = getIndexForValue(mValue);
}
} }
/** /**
@@ -172,12 +176,14 @@ public abstract class ListDialogPreference extends DialogPreference {
*/ */
protected int getIndexForValue(int value) { protected int getIndexForValue(int value) {
final int[] values = mEntryValues; final int[] values = mEntryValues;
if (values != null) {
final int count = values.length; final int count = values.length;
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
if (values[i] == value) { if (values[i] == value) {
return i; return i;
} }
} }
}
return AbsListView.INVALID_POSITION; return AbsListView.INVALID_POSITION;
} }