나는 프로그래밍 방식으로 checkBoxPreference 객체로 목록을 채 웁니다. 새로운 android SDK에는 이전에 구현되지 않은 setIcon() 메서드가 있습니다.Android SDK 수준에 따라 Java 객체를 형변환합니다.
그래서 checkBoxPreference 클래스를 확장하고이 gist과 비슷한 setIcon()을 구현했습니다. 내 새 클래스는 IconCheckBoxPreference라고하며 Kitkat [new SDK]에 문제가 있습니다.
나는
Object cbp;
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){
cbp = new checkBoxPreference(this);
casted_cbp = CastAccordingToClass(cbp, checkBoxPreference.class); //TODO!
}else{
cbp = new IconCheckBoxPreference(this, null);
casted_cbp = CastAccordingToClass(cbp, IconCheckBoxPreference.class); //TODO!
}
casted_cbp.setTitle("My Title");
casted_cbp.setIcon(getResources().getDrawable(R.drawable.bla));
같은 뭔가를 추가 SDK 조건없이 변수 "casted_cbp"를 사용하여 내 코드를 계속합니다. "casted_cbp"의 유형은 무엇입니까? 그렇게 할 수있는 방법이 있습니까? 그런 상황에서 가장 좋은 방법은 무엇입니까?
가능하지 않음 :
이 코드이 다음과 같이 표시됩니다. –
일반적인 수퍼 클래스는 실제로 두 개의 서로 다른 버전 인 "checkBoxPreference"와 동일한 클래스입니다. 이전 버전에는 setIcon()이 없습니다. –
'... 캐스팅 된 객체에 사용할 메소드를 포함합니다. '... –