Подтвердить что ты не робот

Как передать ArrayList <HashMap <String, String >> из одной активности в другую

Как я могу передать список массивов из одного действия в другой, список моих массивов показан ниже.

ArrayList<HashMap<String, String>>
4b9b3361

Ответ 1

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

Передача ArrayList<HashMap<String, String>> из действия A в действие B

Intent intent = new Intent(this, B.class);
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("sunil", "sahoo");
ArrayList<HashMap<String, String>> arl = new ArrayList<HashMap<String, String>>();
arl.add(hm);
intent.putExtra("arraylist", arl);
startActivityForResult(intent, 500);

Получить данные в Activity B

ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
System.out.println("...serialized data.."+arl);

Ответ 2

Вы можете использовать Bundle для передачи элементов из одного действия в другое.

Проверьте это: http://developer.android.com/reference/android/os/Bundle.html

Вы создаете Bundle, помещаете его в Intent, а затем в новое действие, получаете его и извлекаете нужные элементы.

Это происходит следующим образом:

Bundle b = new Bundle();
String s = "hello";
b.putString("example", s);
intent.putExtras(b);

а затем по новой активности:

Bundle b = this.getIntent().getExtras(); 
String s = b.getString("example");

Ответ 3

вот еще один метод, Я использовал следующую строку для определения ArrayList в firstClass.

static ArrayList al=new ArrayList();

Во втором действии я использовал следующую строку, чтобы получить данные ArrayList из firstClass,

firstClass.al.size();

Ответ 4

Моя идея, вы можете определить глобальную статическую переменную для этого набора данных в пакете и сохранить ее сначала, прежде чем перейти к другому действию.