Как да обменяте обект между различни 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); intent.putExtra(MyClient, client); 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