동적으로 생성되는 ListPreference에 대한 기본값을 설정해야합니다. 동적으로 생성되는 이유는 카메라 초점 모드를 선호하고 각 장치가 서로 다른 포커스 모드를 가질 수 있기 때문입니다. listPreferenceFocusMode.setDefaultValue(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
이 작동하지 않거나이 링크에서 How to set the Default Value of a ListPreference 대답이 허용되지 않습니다. 사용자 선택을 무시하기 때문에 올바르지 않습니다. 안드로이드는 ListPrefrence의 기본값을 동적으로 생성하고 채 웁니다.
// Preview Focus Mode
int indexContinuous = 0;
if (focusModes != null && focusModes.size() > 0) {
entries = new String[focusModes.size()];
entryValues = new String[focusModes.size()];
for (int i = 0; i < focusModes.size(); i++) {
entryValues[i] = entries[i] = focusModes.get(i);
if (entryValues[i].equals(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
indexContinuous = i;
}
}
listPreferenceFocusMode.setEntries(entries);
listPreferenceFocusMode.setEntryValues(entryValues);
if (listPreferenceFocusMode.getValue() == null) {
listPreferenceFocusMode.setValueIndex(indexContinuous);
}
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
listPreferenceFocusMode.setDefaultValue(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
} else {
listPreferenceFocusMode.setDefaultValue(Camera.Parameters.FOCUS_MODE_AUTO);
}
} else {
listPreferenceFocusMode.setEnabled(false);
listPreferenceFocusMode.setSummary("Focus Modes are not supported");
}
나는 DEFAULTVALUE을 설정하거나
listPreferenceFocusMode.getValue()
를 사용하여 값을 받고 있지만
listPreferenceFocusMode.getValue()
이
null
이 없기 때문에 그것은 또한 작동하지 않습니다했습니다. 미리 감사드립니다.