Как я могу передать список объектов (любого объекта) через пучок, от активности А до операции Б?

Это на платформе Android, у меня есть список объектов типа (FitItem), и я хочу передать список из моей активности A в другое действие B, а также на активность B, я хочу снова получить список объектов

Ответы

Ответ 1

Intent yourIntent = new Intent(activityA.this, activityB.class);
Bundle yourBundle = new Bundle();
yourBundle.putString("name", value);
yourIntent.putExtras(yourBundle);
startActivity(yourIntent);

И вы получите значение в следующем ActivityonCreate()):

Bundle yourBundle = getIntent().getExtras();
String s = yourBundle.getString("name");

Этот пример передает String, но вы должны понимать, как использовать его для других объектов.

Ответ 2

Для пользовательских классов: Вы должны будете иметь класс FitItem, реализующий Parcelable.

Затем в Activity A из объекта Intent используйте putParcelableArrayListExtra, чтобы передать список FitItem в действие B и в своей деятельности B используйте getParcelableArrayListExtra, чтобы получить список FitItem

Если вы хотите передать список String, Integer, Float..., обратитесь к сообщению bschultz

Ответ 3

Вы должны сериализовать свой объект.

"Seriawhat?"
Хорошо, обо всем по порядку: что такое сериализация объектов?

"Понял, но как мне это сделать?"
Вы можете использовать Parcelable (больше кода, но быстрее) или Serializable (меньше кода, но медленнее).
Parcelable vs Serializable.

"Сэкономь мне время, покажи мне код !"
Хорошо, если вы будете использовать Parcelable, посмотрите это.

И если вы будете использовать Serializable, посмотрите это и/или это.

Надеюсь, это поможет!

Ответ 4

Если они есть, если объект сериализуем, просто добавьте их как дополнительные для намерения. Я думаю, что-то вроде этого:

// in Activity A, when starting Activity B
Intent i = new Intent(this, ActivityB.class);
i.putExra("fitItemList", fitItemList);
startActivity(i);

// in Activity B (onCreate)
ArrayList<FitItem> fitItemList = savedInstanceState.getSerializableExtra("fitItemList");

изменить: Так же, как bschultz уже отправил:)

Ответ 5

Реализует Serializable в классе модели. Затем вы можете передать класс модели, используя пакет/намерение.