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

안드로이드 토글버튼 활성화 저장

0 추천

 

현재 이런식으로.. 나타냈는데요.

버튼5나 6이 ON으로 체크가 되있을 때 액티비티를 닫고 다시열어도 버튼7이 활성화 되있어야되는데..

현재 소스로는 강제종료가 되네요.. 어느부분이 잘못됬을까요. sharedPreference 기능에 저장하기 전까지

View.VISIBLE기능은 잘 작동했는데.. 저장을 하니까 ON상태에서 활성화가 안되네요...

로그캣 부분은 댓글에 올리겠습니다.

 

그리고 어느분이 지적해주셔서 혹시나 int형이 long타입으로 선언되서 안되나 싶어서 소스를 다 살펴보았는데..

long으로 선언된건 없더라구요... 로그캣에는 왜 나오는건지...

 

헬프미 (5,430 포인트) 님이 2015년 1월 5일 질문
헬프미님이 2015년 1월 6일 수정
01-05 21:40:21.755: W/dalvikvm(4792): threadid=1: thread exiting with uncaught exception (group=0x41a4f2a0)
01-05 21:40:21.755: E/AndroidRuntime(4792): FATAL EXCEPTION: main
01-05 21:40:21.755: E/AndroidRuntime(4792): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andro/com.andro.settingActivity}: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.os.Looper.loop(Looper.java:137)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.ActivityThread.main(ActivityThread.java:4898)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at java.lang.reflect.Method.invokeNative(Native Method)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at java.lang.reflect.Method.invoke(Method.java:511)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at dalvik.system.NativeStart.main(Native Method)
01-05 21:40:21.755: E/AndroidRuntime(4792): Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:221)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at com.andro.settingActivity.onCreate(settingActivity.java:65)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.Activity.performCreate(Activity.java:5206)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
01-05 21:40:21.755: E/AndroidRuntime(4792):     ... 11 more
01-05 21:40:23.350: I/Process(4792): Sending signal. PID: 4792 SIG: 9

2개의 답변

0 추천
 
채택된 답변
설정 화면에서 앱의 데이터를 모두 지우고 다시 실행시켜 보세요.

이전에 잘못 저장되어 있던 데이터가 남아있어서 오류가 발생하는 경우도 있습니다.
익명사용자 님이 2015년 1월 6일 답변
헬프미님이 2015년 1월 6일 채택됨
헐..대박 진짜 핸드폰 어플지우고 다시하니 되네요..
헐~....정말 감사합니다..소스는 맞았던거군요..
0 추천

01-05 21:40:21.755: E/AndroidRuntime(4792): Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
01-05 21:40:21.755: E/AndroidRuntime(4792):     at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:221)

 

SharedPreferences 에서 값을 가지고 오실 때 long타입 데이터를 int로 가지고 오려고 하신 거 아닐까요?

settingActivity 65번째 줄 보라구 되어있어요. (01-05 21:40:21.755: E/AndroidRuntime(4792):     at com.andro.settingActivity.onCreate(settingActivity.java:65))

 

위치상으로는 대충

 int btn7visi = pref.getInt("btn7visi", View.VISIBLE);

근처인 것 같아여..

 

로그 찍어보시구 한번 확인해 보시는 게 좋을 것 같아요 ..

relz (2,550 포인트) 님이 2015년 1월 6일 답변
Int형을 int로가져왔는데요 ㅜ
도대체뭐가 문제지ㅜ
...