Reputation:
Here I trying to store all eventLatitude, eventLongitude in arrayLists:
I tried so far:
`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"));
}`
but it is not working getting error in storing values in arraylist logs
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)
i think the way i am getting all eventLatitude,eventLongitude values and storing is incorrect,help me .
Upvotes: 0
Views: 1666
Reputation:
The problem is that ParseObject
stores the value
as an Object
. So you are trying to cast a Double
to a String
. Normally the IDE warns you for this. Now this happens:
Object sneakyDouble = (Double)0.4d;
String s = (String)sneakyDouble;
How do you solve it? Just use:
eventLatitudeList.add(greenmarkers.get("eventLatitude").toString());
eventLongitudeList.add(greenmarkers.get("eventLongitude").toString());
Upvotes: 1
Reputation: 12733
Convert your double value to String and then store into arraylist. Or simply make arraylist of double for storing all double values of latitude and longitude.
example 1:
String lat = String.valueOf(doublevalue);
ArrayList<String> latlist = new ArrayList<String>();
latlist.add(lat);
example 2:
ArrayList<double> latlist = new ArrayList<double>();
latlist.add(doublevalue);
Upvotes: 2