Страница 2 из 3
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 04 фев 2013, 21:55
DOS
Хорошо, не парсебл, значит ли это что сокет не передать в другой activity?
И опять-же какой смысл оборачивать String и int в контейнер если их можно передать напрямую с помощью .putExtra()?
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 04 фев 2013, 23:20
rezak90
нет, не передать с помощью интента
если у вас целый объект то легче обернуть его целиком чем каждое его поле по отдельности
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 05 фев 2013, 10:08
DOS
rezak90, Спасибо, понял.
(кнопки "Спасибо" не нашел, пишу текстом, сорри за оффтоп)
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 06 фев 2013, 19:52
Andy_ua
в чем отличие в передаче объекта через intent как Serializable от Parceable?
как предпочтительнее передавать и в каких случаях?
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 12 фев 2013, 17:45
damager82
Parcelable интерфейс создан специально для Android. Он был создан как более эффективный, чем Serializable, и для обхода некоторых проблем с Java сериализацией.
http://stackoverflow.com/questions/3323 ... rializable
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 11 мар 2013, 13:43
Kirhgoph
Всем привет. Отличные уроки!
Есть, правда, один вопрос: создал проект для этого урока по инструкции, скопировал все коды как нужно, все вроде бы Ок. Однако при создании нового Activity происходит ошибка на операторе MyObject myObj = (MyObject) getIntent().getParcelableExtra(
MyObject.class.getCanonicalName());
И новое Activity закрывается. При нажатии кнопки создания Activity ситуация повторяется.
getParcelableExtra() возвращает null. Что я делаю не так?
Спасибо
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 30 апр 2013, 18:35
krutoy
Parcelable как очередь чтоли? В каком порядке записываем данные, в таком и извлекаем?
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 30 апр 2013, 21:40
Mikhail_dev
Да, конечно.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 07 авг 2013, 16:59
RomanNT
Kirhgoph писал(а):создал проект для этого урока по инструкции, скопировал все коды как нужно, все вроде бы Ок. Однако при создании нового Activity происходит ошибка на операторе MyObject myObj = (MyObject) getIntent().getParcelableExtra(
MyObject.class.getCanonicalName());
И новое Activity закрывается. При нажатии кнопки создания Activity ситуация повторяется.
getParcelableExtra() возвращает null.
У меня тоже самое - приложение падает при запуске второго Activity.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 07 авг 2013, 17:16
Mikhail_dev
Значит ничего не передаете. Всё просто.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 07 авг 2013, 17:38
RomanNT
RomanNT писал(а):Kirhgoph писал(а):создал проект для этого урока по инструкции, скопировал все коды как нужно, все вроде бы Ок. Однако при создании нового Activity происходит ошибка на операторе MyObject myObj = (MyObject) getIntent().getParcelableExtra(
MyObject.class.getCanonicalName());
И новое Activity закрывается. При нажатии кнопки создания Activity ситуация повторяется.
getParcelableExtra() возвращает null.
У меня тоже самое - приложение падает при запуске второго Activity.
Разобрался, в чем причина - просто нужно было добавить второе Activity в манифест (см. урок 21).
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 25 окт 2013, 09:46
Isaev
А если один из параметров Data как его передать?
Код: Выделить всё
Calendar c = new GregorianCalendar(1979, 11, 30);
MyObject myObj = new MyObject("text", 1, c.getTime());
...
public MyObject(String _s, int _i, Date _d) {
Log.d(LOG_TAG,"MyObject(String _s, int _i, Date _d)");
s = _s;
i = _i;
d = _d;
}
...
public void writeToParcel(Parcel parcel, int flags) {
Log.d(LOG_TAG, "writeToParcel");
parcel.writeString(s);
parcel.writeInt(i);
// как мы её тут записываем
}
...
private MyObject(Parcel parcel) {
Log.d(LOG_TAG, "MyObject(Parcel parcel)");
s = parcel.readString();
i = parcel.readInt();
// и как тут читаем?
}
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 25 окт 2013, 10:31
trew
[quote="Isaev"][/quote]
parcel.writeLong(date.getTime()); //write
date = new Date(parcel.readLong()); //read
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 25 окт 2013, 10:47
Isaev
trew, спасибо... пока ждал сделал вот так:
parcel.writeValue(d); //write
d = (Date) parcel.readValue(null); // read
тоже работает
но не понимаю почему месяц на 1 увеличивается?
//Записываем
Calendar c = new GregorianCalendar(1979, 11, 30);
MyObject myObj = new MyObject("text", 1, c.getTime());
//Получаем
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String reportDate = df.format(myObj.d);
Log.d(LOG_TAG,"myObj: "+myObj.s+", "+myObj.i+", "+reportDate);
выводит 30/12/1979
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 25 окт 2013, 10:52
trew
А при работе с диалогом DatePickerDialog
viewtopic.php?f=3&t=464&p=19610#p19610
вопросов не возникало
Это косяк Android, поэтому в коде +1 к месяцу.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 25 окт 2013, 10:58
Isaev
значит при чтении корректируем сразу
Код: Выделить всё
d = (Date) parcel.readValue(null);
d.setMonth(d.getMonth()-1);
там возник вопрос поправки временного пояса, т.к. время у меня на 2 часа меньше было)
а месяц не заметил, сейчас гляну
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 25 окт 2013, 13:11
Mikhail_dev
Блин, но почему же вы считаете что это косяк андроида? Почему??? Какое пространство имен у класса? java.util.Calendar? Тогда причем тут андроид??
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 25 окт 2013, 14:34
KamiSempai
no-- писал(а):
Блин, но почему же вы считаете что это косяк андроида? Почему??? Какое пространство имен у класса? java.util.Calendar? Тогда причем тут андроид??
Зеленые совсем. Что с них взять?
Настоящие тру программисты с 0 начинают считать, а не с 1.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Добавлено: 21 ноя 2013, 16:54
altwin
Спасибо за уроки, все доступно, вот только я все же рекомендовал бы использовать @Override в реализации методов интерфейса, для наглядности. В 1.6 возможность добавили - стоит использовать
.
Re: Урок 69. Ошибка
Добавлено: 27 дек 2013, 09:27
Superoleg
все вроде бы стартует, а при попытке нажать на кнопку выдает такую ошибку