Intereting Posts
В каком файле настроек используется PreferenceFragment для чтения / записи? Как снимать камеру без предварительного просмотра из службы или потока? Как использовать Eclipse для создания выпущенных подписанных apk? Android: Ошибка загрузки изображения в разные версии Android Eclipse не показывает окно Avd manager и проект Android Выделите выбранную строку ListView SQLite, как получить все имена таблиц в базе данных? Android.mk – создать весь исходный файл в каталоге Как сделать целую строку просмотра списка доступной? Круглый прогрессBar Справочная информация: Android Xamarin Android-приложение перезапускается после сбоя / силы Android: как получить информацию о местоположении из унаследованных комплектов при использовании LocationManager.requestLocationUpdates () Получение текущих значений батареи для телефона Android Открыть приложение для Android, когда подключено к Интернету, в противном случае не будет отображаться сообщение о подключении к Интернету Как начать звонок Skype из приложения Android?

Как передать ArrayList <CustomeObject> из одного действия в другое?

Я хочу отправить следующий ArrayList из одной активности в другую, пожалуйста, помогите.

ContactBean m_objUserDetails = new ContactBean(); ArrayList<ContactBean> ContactLis = new ArrayList<ContactBean>(); 

Я посылаю вышеперечисленного arraylist после добавления в него данных следующим образом

  Intent i = new Intent(this,DisplayContact.class); i.putExtra("Contact_list", ContactLis); startActivity(i); 

Но я получаю проблемы, восстанавливая его.

 ArrayList<ContactBean> l1 = new ArrayList<ContactBean>(); Bundle wrapedReceivedList = getIntent().getExtras(); l1= wrapedReceivedList.getCharSequenceArrayList("Contact_list"); 

В этот момент я получаю эту ошибку:

 Type mismatch: cannot convert from ArrayList<CharSequence> to ArrayList<ContactBean> 

Мой класс ContactBean реализует Serializable, пожалуйста, также расскажите, почему мы должны реализовать сериализуемый интерфейс.

Solutions Collecting From Web of "Как передать ArrayList <CustomeObject> из одного действия в другое?"

Вы можете передать ArrayList<E> таким же образом, если тип E является Serializable .

Вы бы назвали putExtra (String name, Serializable value) Intent для хранения и getSerializableExtra (String name) для извлечения.

Пример:

 ArrayList<String> myList = new ArrayList<String>(); intent.putExtra("mylist", myList); 

В другой деятельности:

 ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist"); 

В первой деятельности ..

 ArrayList<ContactBean> fileList = new ArrayList<ContactBean>(); Intent intent = new Intent(MainActivity.this, secondActivity.class); intent.putExtra("FILES_TO_SEND", fileList); startActivity(intent); 

В деятельности приемника:

 ArrayList<ContactBean> filelist = (ArrayList<ContactBean>)getIntent().getSerializableExtra("FILES_TO_SEND");` 

Вам нужно реализовать Parcelable в вашем классе ContactBean , я ContactBean для вас один пример:

 public class ContactClass implements Parcelable { private String id; private String photo; private String firstname; private String lastname; public ContactClass() { } private ContactClass(Parcel in) { firstname = in.readString(); lastname = in.readString(); photo = in.readString(); id = in.readString(); } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(firstname); dest.writeString(lastname); dest.writeString(photo); dest.writeString(id); } public static final Parcelable.Creator<ContactClass> CREATOR = new Parcelable.Creator<ContactClass>() { public ContactClass createFromParcel(Parcel in) { return new ContactClass(in); } public ContactClass[] newArray(int size) { return new ContactClass[size]; } }; // all get , set method } 

И это получить и установить для вашего кода:

 Intent intent = new Intent(this,DisplayContact.class); intent.putExtra("Contact_list", ContactLis); startActivity(intent); 

Второй класс:

 ArrayList<ContactClass> myList = getIntent().getParcelableExtra("Contact_list"); 

Используйте этот код, чтобы передать arraylist в другую деятельность.

Во-первых, сериализуйте наш контактный компонент

 public class ContactBean implements Serializable { //do intialization here } 

Теперь передайте своего архитектора ..

  Intent intent = new Intent(this,name of activity.class); contactBean=(ConactBean)_arraylist.get(position); intent.putExtra("contactBeanObj",conactBean); _activity.startActivity(intent);