Как обменять объект между различными действиями Android?

В моем приложении есть список клиентов (с отображением только имени и возраста), и я хочу иметь возможность редактировать/добавлять дополнительную информацию о них, которая не отображается в списке. Поэтому всякий раз, когда я нажимаю на клиента, я хочу начать вторую активность со всей информацией о нем.

Могу ли я использовать намерение для этого? Могу ли я сразу передать полный Объект (Клиент) с намерением?

Я просмотрел эти две темы, но я еще не нашел свой ответ:

Как обмениваться данными (объектами) между различными действиями Android?

Как передавать данные между действиями в приложении Android?

Заранее спасибо.


person paulof91    schedule 07.10.2015    source источник


Ответы (3)


Посмотрите на этот ответ: Как передать объект от одного действия к другому на Android

//to pass :
intent.putExtra("MyClass", obj);  

// to retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");
person Vingtoft    schedule 07.10.2015
comment
Я получаю сообщение об ошибке «Не удается разрешить метод», когда использую метод putExtra(). Вот как я пытаюсь отправить намерение: NewEntry client = ClientsList.get(position); Намерение намерение = новое намерение (HomeActivity.this, ParseClient.class); намерение.putExtra (МойКлиент, клиент); startActivity(намерение); Что я делаю не так? - person paulof91; 07.10.2015

Я бы посоветовал вам сохранить их в файле SharedPreferences. Создайте одноэлементный класс AppUtil и добавьте функциональность для сохранения данных в общих настройках, а также возможность извлекать указанные данные.

Если у вас хранится большой объем информации для клиентов, вам следует изучить SQLite в качестве хранилища базы данных.

person Shrey    schedule 07.10.2015

Более практичный способ - создать класс для хранения всех объектов, которые вам нужно изменить между действиями. Как это:

public class MyHolderObjects {
    public static MyObjectType mObject;
}

перед началом нового действия (или того, что вы собираетесь его использовать), создайте экземпляр (создайте) объект в MyHolderObjects. И используйте его везде, где вам нужно :). Я предпочитаю этот подход вместо сериализации объекта.

person TroniPM    schedule 07.10.2015