마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android.widget.NumberPickerButton 질문

0 추천
FATAL EXCEPTION: main
java.lang.ClassCastException: android.widget.NumberPickerButton
at com.skp.nk.teacher.common.NearKidsPickerHelper.getDate(NearKidsPickerHelper.java:431)
at com.skp.nk.teacher.common.NearKidsPickerHelper.setMinute(NearKidsPickerHelper.java:299)
at com.skp.nk.teacher.common.NearKidsPickerHelper$1.onClick(NearKidsPickerHelper.java:202)
at android.view.View.performClick(View.java:2538)
at android.view.View$PerformClick.run(View.java:9152)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
 
 
2.3 진저브레드에서 나는 에러입니다.
DatePicker 나 TimePicker 를 사용하면서
EditText에 직접입력후 값을 받아올려할때 
 
final LinearLayout layout1 = (LinearLayout) datetime_picker.getChildAt(0);
final LinearLayout layout = (LinearLayout) layout1.getChildAt(0);
EditText et = null;
if(mDay ==  YEAR){
// year
final LinearLayout day = (LinearLayout) layout.getChildAt(0);
et = (EditText) day.getChildAt(1);
}else if(mDay ==  MONTH){
// month
LinearLayout month = (LinearLayout) layout.getChildAt(1);
et = (EditText) month.getChildAt(1);
}else if(mDay ==  DAY){
// day
LinearLayout year = (LinearLayout) layout.getChildAt(2);
et = (EditText) year.getChildAt(1);
}
이러한 소스를 사용합니다
빨간색으로 표시된 부분에서 에러가 나고있습니다.
확실히 버전이 달라서 나는 경우 같은데요
2.3에서 저러한 에러를 경험하신분 계신가요??
구글에 뭐라고 검색해야할지 모르겠네요...
에러자체로는 검색도 안되구요 ㅠㅠ
아니면 값을 받아오는 방식이 다른방식이 있는건가요??
뭐가 문제인지는 알겠는데 어떻게 해결방안을 찾아야할지 모르겠네요 ㅠㅠ
정에약한마음 (1,160 포인트) 님이 2013년 10월 10일 질문

1개의 답변

0 추천
캐스팅 오류 인데요 layout 의 첫번째 차일드에 첫번째 차일드의 항목이 LinearLayout 이 아닌가봅니다.

xml 확인하세요
aucd29 (218,390 포인트) 님이 2013년 10월 10일 답변
4.0에선 에러가 나지않습니다 ㅠㅠ
그이유는 아닌것같아요 ...
java.lang.ClassCastException: android.widget.NumberPickerButton

클래스 캐스팅 오류라고 익셉션이 써져있는데 말이죠 -_ -;;

android.widget.NumberPicker 가 api level 11 부터 추가되었네요
그 이하에선 사용이 안됩니다.
http://developer.android.com/intl/ko/reference/android/widget/NumberPicker.html
그걸 모르는것이 아니라 ...
사용이 안되는것도 알구요
그러니 저런경험이 있으신분들이 다른방식을 이용해서 해결하셨을탠데
그해결방안이 궁금한겁니다
질문을 이해를 잘못했나 봅니다.

첫번째는 아에 다르게 우회해서 개발 하시는 것이구요
두번째는 상위 버전의 소스를 하위 버전에 포함시켜서 개발하시는 방법 밖에 없죠

어차피 안드로이드는 오픈 소스이니깐요
해결했네요 ...
진저브레드랑 아스크림이랑 UI가 다른가봐요 ...
그래서 계속 캐스팅에러가 났던 ...
...