I have a ArrayList that contains values in the form [ann,john]. I want to convert this ArrayList into a String array in the form {"ann","john"}.
How should I do this?
My Android code:
final Button markabsent = (Button) findViewById(R.id.Button02); markabsent.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on click Toast.makeText(display.this,"You have marked the students absent",Toast.LENGTH_SHORT).show(); SparseBooleanArray checkedabsent = lView.getCheckedItemPositions(); for (int i = 0; i < arr2.length; i++) { if (checkedabsent.get(i)) { items2.add(arr2[i]); System.out.println(items2); } } Log.d("", "items:"); for (String string : items2) { Log.d("string is", string); } } });
My Logcat:
11-10 21:44:00.414: INFO/System.out(2316): [ann, john, ann] 11-10 21:44:00.414: DEBUG/(2316): items: 11-10 21:44:00.414: DEBUG/string is(2316): ann 11-10 21:44:00.414: DEBUG/string is(2316): john
I tried doing everything mentioned in the answers but my logcat just doesn't seem to imrove
Here is the one giving exceptions:
11-10 22:14:20.855: INFO/System.out(3322): [Ljava.lang.String;@44eb6ff0 11-10 22:16:38.186: ERROR/AndroidRuntime(3411): FATAL EXCEPTION: main 11-10 22:16:38.186: ERROR/AndroidRuntime(3411): java.lang.ClassCastException: [Ljava.lang.Object; 11-10 22:16:38.186: ERROR/AndroidRuntime(3411): at com.example.display$2.onClick(display.java:124) 11-10 22:16:38.186: ERROR/AndroidRuntime(3411): at android.view.View.performClick(View.java:2408) 11-10 22:16:38.186: ERROR/AndroidRuntime(3411): at android.view.View$PerformClick.run(View.java:8816) 11-10 22:16:38.186: ERROR/AndroidRuntime(3411): at android.os.Handler.handleCallback(Handler.java:587)
Here is one more:
11-10 22:14:20.875: DEBUG/string is(3322): ann 11-10 22:14:20.875: INFO/System.out(3322): [Ljava.lang.String;@44eb7720 11-10 22:14:20.875: INFO/System.out(3322): [Ljava.lang.String;@44eb7720 11-10 22:14:20.885: INFO/System.out(3322): [Ljava.lang.String;@44eb7720 11-10 22:14:20.895: DEBUG/string is(3322): john 11-10 22:14:20.895: INFO/System.out(3322): [Ljava.lang.String;@44eb7de8 11-10 22:16:38.186: ERROR/AndroidRuntime(3411): at com.example.display$2.onClick(display.java:124)
To convert the contents of an ArrayList to a String, create a StringBuffer object append the contents of the ArrayList to it, finally convert the StringBuffer object to String using the toString() method.
All the elements of an ArrayList can be copied into an Object Array using the method java. util. ArrayList. toArray().
Use the method "toArray()"
ArrayList<String> mStringList= new ArrayList<String>(); mStringList.add("ann"); mStringList.add("john"); Object[] mStringArray = mStringList.toArray(); for(int i = 0; i < mStringArray.length ; i++){ Log.d("string is",(String)mStringArray[i]); }
or you can do it like this: (mentioned in other answers)
ArrayList<String> mStringList= new ArrayList<String>(); mStringList.add("ann"); mStringList.add("john"); String[] mStringArray = new String[mStringList.size()]; mStringArray = mStringList.toArray(mStringArray); for(int i = 0; i < mStringArray.length ; i++){ Log.d("string is",(String)mStringArray[i]); }
http://developer.android.com/reference/java/util/ArrayList.html#toArray()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With