Отправка LinkedHashMap для намерения - PullRequest
2 голосов
/ 12 ноября 2010

Я хочу отправить LinkedHashMap другому Intent. Но я не знаю, какой метод для статистов допустим.

Bundle extras = getIntent().getExtras();
  LinkedHashMap<Integer, String[]> listItems = extras.get(LIST_TXT);

1 Ответ

2 голосов
/ 15 августа 2016

Вы не можете надежно отправить LinkedHashMap как Intent дополнительно. Когда вы вызываете putExtra() с LinkedHashMap, Android видит, что объект реализует интерфейс Map, поэтому он сериализует пары имя / значение в дополнительные значения Bundle в Intent. Когда вы хотите извлечь его с другой стороны, вы получите HashMap, а не LinkedHashMap. К сожалению, это HashMap, которое вы получили, потеряло порядок, из-за которого вы хотели использовать LinkedHashMap.

Единственный надежный способ сделать это - преобразовать LinkedHashMap в упорядоченный массив, поместить массив в Intent, извлечь массив из Intent на принимающей стороне, а затем воссоздать LinkedHashMap.

См. мой ответ на этот вопрос для более подробной информации.

...