2013-07-13 2 views
0

Я хочу отправить arraylist с hashmap между действиями, но дает мне нулевой архаист с hashmap.передать arraylist с hashmap между действиями в android?

Sender активность

ArrayList<HashMap<String,String>> childgame = new ArrayList<HashMap<String,String>>(); 
Intent ordernow= new Intent(CategoryActivity.this,OrderDetailActivity.class); 
ordernow.putExtra("orderlist",childgame);          
startActivity(ordernow); 

Receiver активность

Intent intent = getIntent(); 
Bundle bundle =intent.getExtras(); 
bundle.getSerializable("orderlist"); 
+0

Попробуйте этот get1tent(). GetSerializableExtra ("orderlist") '. – Raghunandan

ответ

6

Используйте putExtra(String, Serializable), чтобы передать значение в Намерении и getSerializableExtra(String) метод для извлечения данных.

ArrayList реализует Serializable

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

У вас уже есть этот

ordernow.putExtra("orderlist",childgame); 

Чтобы получить список

Intent intent = getIntent(); 
ArrayList<HashMap<String,String>> list = (ArrayList<HashMap<String, String>>) intent.getSerializableExtra("orderList"); 

public Serializable getSerializableExtra (String name)

Добавлен в уровень API 1

Извлечь расширенные данные из намерения.

Параметры

имя Название требуемого элемента.

Возвращает

значения элемента, который ранее с добавлением putExtra() или нулевым значением, если не Сериализуемое значения не было найдено.

+0

спасибо, что работает для меня, но дает мне Тип безопасности: снят флажок из Serializable в ArrayList > это предупреждение о подавлении, поэтому, если я добавляю Add @ SuppressWarning, возникает любая проблема в будущей или более старой версии –

+0

его линт предупреждение о литье. – Raghunandan

+0

http://stackoverflow.com/questions/509076/how-do-i-address-unchecked-cast-warnings. вот одна из ссылок, которая может помочь. его для безопасности типа и предупреждения о нем. лучше проверить тип. – Raghunandan

1

попробовать с помощью getIntent().getSerializableExtra("orderlist")

на стороне приемника использования: же типа ArrayList получить данные!

ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("orderlist"); 
Смежные вопросы