2013-10-10 2 views
0

ArrayList에에서의 parseObject 데이터를 저장하는은 어떻게 arrayLists 모든 eventLatitude, eventLongitude를 저장하려고 여기

`ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
         "GreenMarkers"); 
       query.orderByDescending("_created_at"); 
       try { 
         ob = query.find(); 
        } catch (ParseException e) { 
         Log.e("Error", e.getMessage()); 
         e.printStackTrace(); 
        } 
       for (ParseObject greenmarkers : ob) { 
         eventLatitudeList.add((String) greenmarkers.get("eventLatitude")); 
         eventLongitudeList.add((String) greenmarkers.get("eventLongitude")); 

        }` 

을하지만 점점 작동하지 않습니다 arraylist에 값을 저장하는 중 오류가 발생했습니다.

10-10 17:22:25.021: E/AndroidRuntime(21178): FATAL EXCEPTION: main 
10-10 17:22:25.021: E/AndroidRuntime(21178): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tukutane/com.tukutane.StartActivity}: java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2114) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2139) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.ActivityThread.access$700(ActivityThread.java:143) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.os.Looper.loop(Looper.java:137) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.ActivityThread.main(ActivityThread.java:4960) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at java.lang.reflect.Method.invokeNative(Native Method) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at java.lang.reflect.Method.invoke(Method.java:511) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at dalvik.system.NativeStart.main(Native Method) 
10-10 17:22:25.021: E/AndroidRuntime(21178): Caused by: java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String 
10-10 17:22:25.021: E/AndroidRuntime(21178): at com.tukutane.StartActivity.onCreate(StartActivity.java:131) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.Activity.performCreate(Activity.java:5203) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
10-10 17:22:25.021: E/AndroidRuntime(21178): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2078) 

나는 모든 eventLatitude, eventLongitude 값을 얻고 저장하는 방식이 잘못되었다고 생각한다.

답변

2

double 값을 String으로 변환 한 다음 arraylist에 저장하십시오. 또는 위도와 경도의 모든 이중 값을 저장하기 위해 arraylist를 double로 만듭니다.

예 1

String lat = String.valueOf(doublevalue); 
ArrayList<String> latlist = new ArrayList<String>(); 
latlist.add(lat); 

예 2

ArrayList<double> latlist = new ArrayList<double>(); 
latlist.add(doublevalue); 
+0

예 2의 ArrayList 유형은 원시 유형일 수 없습니다. – SagunKho

1

문제가 있음 ParseObject 저장한다 Objectvalue. 따라서 DoubleString 번으로 전송하려고합니다. 일반적으로 IDE는 이것을 경고합니다. 이제 이런 일이 발생합니다 :

Object sneakyDouble = (Double)0.4d; 
String s = (String)sneakyDouble; 

어떻게 해결합니까? 그냥 사용하십시오 :

eventLatitudeList.add(greenmarkers.get("eventLatitude").toString()); 
eventLongitudeList.add(greenmarkers.get("eventLongitude").toString());