I want send LinkedHashMap to another Intent. But I don't known what method for extras is allowable.
Bundle extras = getIntent().getExtras();
LinkedHashMap<Integer, String[]> listItems = extras.get(LIST_TXT);
I want send LinkedHashMap to another Intent. But I don't known what method for extras is allowable.
Bundle extras = getIntent().getExtras();
LinkedHashMap<Integer, String[]> listItems = extras.get(LIST_TXT);
You cannot reliably send a LinkedHashMap
as an Intent
extra. When you call putExtra()
with a LinkedHashMap
, Android sees that the object implements the Map
interface, so it serializes the name/value pairs into the extras Bundle
in the Intent
. When you want to extract it on the other side, what you get is a HashMap
, not a LinkedHashMap
. Unfortunately, this HashMap
that you get has lost the ordering that was the reason you wanted to use a LinkedHashMap
in the first place.
The only reliable way to do this is to convert the LinkedHashMap
to an ordered array, put the array into the Intent
, extract the array from the Intent
on the receiving end, and then recreate the LinkedHashMap
.
See my answer to this question for more gory details.