Android UI에서 버그를 발견했을 수 있다고 생각하지만 잘못된 내용을 잘못 처리하지는 않았 으면합니다. 다음은 문제의 원인이되는 실행중인 코드의 단순화 된 버전입니다. 이 리스너는 내 UI의 특정 NumberPicker에 설정되며 제대로 비활성화/설정되지만 사용자가 비활성화하는 다른 NumberPickers 중 하나의 값을 변경하면 이상하게 작동합니다.NumberPicker가 비활성화되었을 때 회색으로 표시되지 않음
입력을 제대로 비활성화하지만 값을 회색으로 표시하지 못하여 활성화 된 것처럼 보입니다. 이것은 의도 된 것입니까? 내가 뭔가 잘못하고 있는거야?
NumberPicker.OnValueChangeListener diceChangeListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
View parent = (View) picker.getParent();
if (newVal == 0) {
((NumberPicker) parent.findViewById(R.id.diceCountPicker1)).setEnabled(false);
} else if (oldVal == 0) {
((NumberPicker) parent.findViewById(R.id.diceCountPicker1)).setEnabled(true);
}
}
};
더 나은 방법이 있는지 또는 합법적 인 버그인지 알려주세요. 그것이 버그 인 경우 해결 방법이 있습니까?
편집 : 여기에 XML에서 diceCountPicker1의 정의입니다 :
<NumberPicker
android:id="@+id/diceCountPicker1"
android:layout_width="48dp"
android:layout_height="128dp"
android:descendantFocusability="blocksDescendants"
/>
편집 2 :
내가 에뮬레이터에서 이것을 테스트하고 문제가 젤리 빈 이전에 존재하지 않는 것을 확인했다 (4.1) . 그것은 ICS에서 제대로 작동합니다. 그거 짜증나네. 하지만 지금은 그걸로 살 수 있을지도 몰라. 이 버그를 해결할 수있는 잠재적 인 방법을 공개적으로 남겨 두 겠지만, 나에게는 실제 버그가있는 것처럼 보이고, 수정 될 수 있을지 의심 스럽다.
당신은 xml 파일에서'diceCountPicker1'이 어떻게 선언되는지 레이아웃 코드를 게시 할 수 있습니까? –
질문을 NumberPicker의 XML로 업데이트했습니다. – Utoxin
아래에 게시 된 솔루션을 참조하십시오. 그것이 나를 위해 잘 작동하는 것으로 시도하십시오. 감사. –