Allow restore instance before setValues() in ListDialogPreference

BUG: 14570831
Change-Id: I0fd24acab5221d1414f749ec18e70a72f36cc5e4
This commit is contained in:
Alan Viverette
2014-05-12 12:30:43 -07:00
parent 1cb159a739
commit 2e1bf8a478

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,10 +176,12 @@ public abstract class ListDialogPreference extends DialogPreference {
*/ */
protected int getIndexForValue(int value) { protected int getIndexForValue(int value) {
final int[] values = mEntryValues; final int[] values = mEntryValues;
final int count = values.length; if (values != null) {
for (int i = 0; i < count; i++) { final int count = values.length;
if (values[i] == value) { for (int i = 0; i < count; i++) {
return i; if (values[i] == value) {
return i;
}
} }
} }