2016-07-19 10 views
0

아래 코드에서 다음과 같은 오류가 발생합니다. 그것은 가상 장치에서 행복하게 작동하는 것처럼 보이지만 실제 장치에서 실행하자마자 충돌합니다. java.lang.ClassCastException가 :Android 사용자 환경 설정 오류

에 의해 발생하는 java.lang.Integer가 android.app.SharedPreferencesImpl.getString에서 java.lang.String의 캐스트 할 수없는 (SharedPreferencesImpl.java:223)

다음은 오류를 발생시키는 함수의 코드입니다.

public void queueJump2() { 



     ParseQuery<ParseObject> query = ParseQuery.getQuery("settings"); 
     query.getInBackground("BauCSafDjA", new GetCallback<ParseObject>() { 
      public void done(ParseObject object, ParseException e) { 
       if (e == null) { 


        String queueJumpActive = object.getString("status"); 

        Log.i("QUEUE JUMP STATUS >>",queueJumpActive); 


        if (!queueJumpActive.equals("active")){ 

         Button qjumpButton = (Button)findViewById(R.id.qjumpButton); 
         qjumpButton.setText("DISABLED"); 

        } else { 



         Long tsLong = System.currentTimeMillis()/1000; 
         String ts = tsLong.toString(); 

         Long dayAgoLong = (System.currentTimeMillis()/1000)-84600; 
         String dayAgo = dayAgoLong.toString(); 

         Log.i("Current Time Stamp: ", ts.toString()); 
         Log.i("dayAgo >>: ", dayAgo.toString()); 

         Date dNow = new Date(); 
         SimpleDateFormat ft = 
           new SimpleDateFormat ("HH"); 

         TimeZone tz = TimeZone.getTimeZone("EST"); 
         boolean inDs = tz.inDaylightTime(new Date()); 

if (String.valueOf(inDs) == "false") { 
+0

충돌을 일으키는 코드 줄은 정확히 무엇입니까? –

+0

문자열 queueJumpActive = object.getString ("status"); - thats line 223 – MattBlack

답변

1

sharedpreference에 정수를 추가하여 문자열로 가져 오려고 할 수 있습니다. 이런 식으로 문자열 "상태"를 추가하십시오.

Editor editor = sharedpreferences.edit(); 
editor.putString("status",string.valueof(YOUR STATUS INTEGR)); 
editor.commit(); 
+0

장치에서 응용 프로그램을 제거했는데 없어야 할 환경 설정에 저장된 내용이있는 것처럼 보였습니다. 감사! – MattBlack