캐스트 할 수없는android.widget.Switch 내가 코드의 간단한 라인을 가지고 android.widget.ToggleButton
앱이 컴파일되어 내 Galaxy Nexus에 오류없이 설치됩니다. 그러나, 나는 (오프 슬라이더 /에) 스위치를 누른 후 즉시이 예외를 얻을 :
android.widget.switch는
어떤 제안을 android.widget.togglebutton 캐스팅 할 수없는 이유는 무엇입니까?
캐스트 할 수없는android.widget.Switch 내가 코드의 간단한 라인을 가지고 android.widget.ToggleButton
앱이 컴파일되어 내 Galaxy Nexus에 오류없이 설치됩니다. 그러나, 나는 (오프 슬라이더 /에) 스위치를 누른 후 즉시이 예외를 얻을 :
android.widget.switch는
어떤 제안을 android.widget.togglebutton 캐스팅 할 수없는 이유는 무엇입니까?
왜 토글 버튼에 캐스트하고 싶습니까? 그냥 스위치 개체를 계속 사용하십시오. 버튼 클릭과 마찬가지로 이벤트 리스너를 구현하면됩니다. 그런 다음 부울 매개 변수에서 확인 된 상태를 가져옵니다.
switch1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//get boolean value from parameter.
boolean on = isChecked;
}
});
비록 Switch
및 ToggleButton
는 CompoundButton
이 Switch
가 ToggleButton
아니다 있습니다. 각각은 서로 바꾸어 사용할 수 없습니다.
CompoundButton
|
+-----------+----------+
| |
Switch ToggleButton
대신 또는
(Switch)
(특정, 더 나은) (일반적인 경우에 대한)
(CompoundButton)
에 캐스팅을 변경해보십시오.
public void VehicleDeleteModus(View v){
boolean on = ((Switch) v).isChecked();
(...)
}
'ToggleButton'이 아닌 'CompoundButton'으로 변환한다는 의미입니다. '개'를 '고양이'로 주조하는 것은 불가능합니다. – Geros