Note that there are some explanatory texts on larger screens.

plurals
  1. POclassCastException when sending multidimentioal arrayList in bundle
    primarykey
    data
    text
    <p>I have an app that parses a JSON object and put the data in a 2D ArrayList of type TwoDimentionalArrayList.</p> <pre><code> public TwoDimentionalArrayList&lt;String&gt; getRota(String carerID, String date){ try { JSONObject jsonObject1 = new JSONObject(tok3); int count = jsonObject1.names().length(); for(int i = 0; i &lt; count; i++){ String s = new Integer(i).toString(); JSONObject jsonobject2 = (JSONObject) jsonObject1.get(s); String startdate = jsonobject2.getString("StartDate"); String duration = jsonobject2.getString("Duration"); String callStatusName = jsonobject2.getString("CallStatusName"); String clientForeName = jsonobject2.getString("ClientForename"); String clientSurName = jsonobject2.getString("ClientSurname"); Log.e(TAG, "startdate = " + startdate); Log.e(TAG, "duration = " + duration); Log.e(TAG, "callStatusName = " + callStatusName); Log.e(TAG, "clientForeName = " + clientForeName); Log.e(TAG, "clientsurName = " + clientSurName); ArrayList&lt;String&gt; arr = new ArrayList&lt;String&gt;(); arr.add(startdate); arr.add(duration); arr.add(callStatusName); arr.add(clientForeName); arr.add(clientSurName); arrayList.add(i, arr); } return arrayList; }// end of getRota class TwoDimentionalArrayList&lt;T&gt; extends ArrayList&lt;ArrayList&lt;T&gt;&gt; { private static final long serialVersionUID = 1L; public void addToInnerArray(int index, T element) { while (index &gt;= this.size()) { this.add(new ArrayList&lt;T&gt;()); } this.get(index).add(element); } public void addToInnerArray(int index, int index2, T element) { while (index &gt;= this.size()) { this.add(new ArrayList&lt;T&gt;()); } ArrayList&lt;T&gt; inner = this.get(index); while (index2 &gt;= inner.size()) { inner.add(null); } inner.set(index2, element); } } </code></pre> <p>.</p> <p>I send the arryList in the following way.</p> <pre><code> Bundle b = new Bundle(); b.putSerializable("rotaArray", rotaArray); intent.putExtra("rotaArrayBundle", b); startActivity(intent); </code></pre> <p>And then retrieve it in another Activity like this.</p> <pre><code>intent = this.getIntent(); Bundle bundle = intent.getBundleExtra("rotaArrayBundle"); @SuppressWarnings("unchecked") TwoDimentionalArrayList&lt;String&gt; array = (TwoDimentionalArrayList&lt;String&gt;) bundle.get("rotaArray"); </code></pre> <p>The app seems to have a problem casting the array to a TwoDimentionalArrayList which is an inner class of the one that parses the JSON. Here's the Exception.</p> <pre><code>09-20 11:23:13.797: E/AndroidRuntime(9743): FATAL EXCEPTION: main 09-20 11:23:13.797: E/AndroidRuntime(9743): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.carefreegroup/com.carefreegroup.GetRota}: java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.carefreegroup.LoginWebservice$TwoDimentionalArrayList 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2260) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.ActivityThread.access$600(ActivityThread.java:139) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.os.Handler.dispatchMessage(Handler.java:99) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.os.Looper.loop(Looper.java:156) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.ActivityThread.main(ActivityThread.java:5045) 09-20 11:23:13.797: E/AndroidRuntime(9743): at java.lang.reflect.Method.invokeNative(Native Method) 09-20 11:23:13.797: E/AndroidRuntime(9743): at java.lang.reflect.Method.invoke(Method.java:511) 09-20 11:23:13.797: E/AndroidRuntime(9743): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 09-20 11:23:13.797: E/AndroidRuntime(9743): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 09-20 11:23:13.797: E/AndroidRuntime(9743): at dalvik.system.NativeStart.main(Native Method) 09-20 11:23:13.797: E/AndroidRuntime(9743): Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.carefreegroup.LoginWebservice$TwoDimentionalArrayList 09-20 11:23:13.797: E/AndroidRuntime(9743): at com.carefreegroup.GetRota.onCreate(GetRota.java:27) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.Activity.performCreate(Activity.java:4543) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 09-20 11:23:13.797: E/AndroidRuntime(9743): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181) 09-20 11:23:13.797: E/AndroidRuntime(9743): ... 11 more </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload