С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
#1

Передать через intent ArrayList объектов своего класса - Программирование Android

16.06.2016, 23:21. Просмотров 538. Ответов 7
Метки нет (Все метки)

У меня есть ArrayList из обьектов моего класса. Мне нужно передать это через intent в другое активити. Значит мой класс должен реализовывать интерфейс Parcelable. Но дело в том, что в этом моем классе есть поля, которые тоже представляют собой обьекты других моих классов(как бы композиция). Как запихнуть в parcel полностью такой класс - композицию? Получается другие объекты которые входят в этот класс тоже должны реализовывать Parcelable или как?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2016, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передать через intent ArrayList объектов своего класса (Программирование Android):

Передача ArrayList<String> через intent - Программирование Android
Создан класс для передачи через intent: package ru.frozik6k.lohouse; import android.os.Parcel; import android.os.Parcelable; ...

Передать через intent VIEW - Программирование Android
Как можно через intent передать &quot;VIEW&quot;, полученное вот таким способом: View view = (View)findViewById(R.id.layout_linear); Передавая...

Передать через Intent информацию об Item - Программирование Android
Выводит ошибку и приложение закрывается by Force Close ошибка по ходу в Intente package kg.aykut.speak_kyrgyz; import...

Как передать ссылку через Intent - Программирование Android
Как можно в такой класс package app.kray.anddev; import java.io.IOException; import java.io.InputStream; import...

Передать ссылку на класс через Intent - Программирование Android
Возможно ли подобное? Есть класс, в котором храню больше 50 параметров разного типа (количество переменных все еще растет). Эти...

Пытаюсь передать данные через Intent, но выходит ошибка - Программирование Android
Пытаюсь передать данные через Intent, но выходит ошибка, когда пытаюсь передать число Вот, что выводит в Логе 03-02...

7
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
17.06.2016, 09:05 #2
Цитата Сообщение от yura91 Посмотреть сообщение
другие объекты которые входят в этот класс тоже должны реализовывать Parcelable
Разумеется. Это же вам напишет и компилятор, если вдруг забудете реализовать Parcelable.
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
17.06.2016, 10:20  [ТС] #3
Ну а как тогда этот объект композицию полностью запихнуть в parcel? Дело в том, что в parsel можно запихнуть только поля которые имеют тип String, int, double и тп(parcel.readInt,parcel.readString и др, но нет методов для записывания моего обьекта в parcel) . Ну а если есть поля, внутри класса которые тоже обьекты только другого моего класса, то какие есть методы чтобы их запихнуть в parcel вместе с остальными полями моего класса? Или их нужно передавать отдельно через intent??
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
17.06.2016, 12:09 #4
yura91, если это сложные объекты типа Context, то никак. Если это сериализуемые или parcelable-классы, то по каждому классу надо писать обработку. Вообще, к чему вопросы? Взяли да попробовали.
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
17.06.2016, 13:36  [ТС] #5
Нет это не объекты типа Context. Это обьекты тоже моих классов(они тоже реализуют parselable) а как правильно написать для них обработку в таком случае?

Добавлено через 1 минуту
Ну что бы в parsel их можно было запихивать когда запихивается туда класс их содержащий??
0
Frozik6k
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 51
17.06.2016, 15:28 #6
Вот ни разу не пробовал, но вроде как можно еще с помощью json-строки передать. Попробуй поэкспериментировать в этом направлении.
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,067
Завершенные тесты: 1
17.06.2016, 16:15 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
любой класс-модельку элементарно передавать одной json-строкой, сто раз уже показывал как
1. подключаем
XML
1
compile 'com.google.code.gson:gson:2.6.2'
2. ложим в бандл, или чем там передается, json-строку полученную из класса-модели
Java
1
2
3
4
        Gson gson = new Gson();
        String json = gson.toJson(model);
        Bundle bundle = new Bundle();
        bundle.putString("JSON_MODEL", json);
3. достаем это все
Java
1
2
3
        Gson gson = new Gson();
        final String json = bundle.getString("JSON_MODEL");
        MyModelClass model = gson.fromJson(json, MyModelClass.class); // вместо MyModelClass имя класса-модельки
если в строку переводится не просто 1 объект, а ArrayList то
достаем немного по-другому, тут подробнее

но зная топикстартера, уверен что это все бестолку
2
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
18.06.2016, 20:15  [ТС] #8
Спасибо
0
18.06.2016, 20:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2016, 20:15
Привет! Вот еще темы с ответами:

Как передать через intent нажатие кнопки в другом активити - Программирование Android
В первом активити у нас есть две кнопки 1 и 2. Во втором активити ещё две кнопки 3 и 4. Вопрос в том, как сделать так, чтоб при нажатии...

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] - Программирование Android
Выдает такую ошибку, хотя смартфон видит, он разрешает отладку, при запуске выдает такое сообщение, на самом экране смартфона при заходе в...

Передать адаптер в Intent - Программирование Android
Как это сделать??? Создал свой адаптер (My_adapter) для списка цветных строк и пытаюсь избавится от всех мест где раньше использовал...

Как передать intent данные в Service? - Программирование Android
Здравствуйте! как передать intent данные в класс с расширением Service? Стандартным способом кажется не получится передать через putextra...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.