Передать объект или идентификатор объекта в новое действие - PullRequest
0 голосов
/ 20 июня 2019

Если у меня есть список определенных предметов (скажем, фруктов) в одном упражнении.Здесь элементы полностью загружены из базы данных ROOM.Нажав на Fruit, вы попадете на FruitDetailPage.Конечно, я должен передать Fruit новому занятию с Intent.

Но что было бы лучше сделать?

  • Передать полный фруктовый объект
  • Передайте fruit_id и перезагрузите фруктовый объект из базы данных в новом действии

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Передача объекта будет лучше, поскольку пакет имеет ограничение по размеру, поэтому, по мере увеличения полей объекта, вы можете ловить ошибки.Вам также потребуется меньше места в памяти. И самое главное, вам не нужно писать дополнительный код и наследовать ваш объект от Parcelabe.

0 голосов
/ 20 июня 2019

В вашей активности списка:

int fruitId = 5;
Intent i = new Intent(this/*activity*/, FruitDetailPage.class);
i.putExtra("fruit_id", fruitId);
startActivity(i);

В вашей активности FruitDetailPage:

void onCreate(Bundle bundle) {
  super.onCreate(bundle);
  int fruitId = getIntent().getIntExtra("fruit_id", -1);
}
...