Урок 69. Передаем Parcelable объекты с помощью Intent
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Хорошо, не парсебл, значит ли это что сокет не передать в другой activity?
И опять-же какой смысл оборачивать String и int в контейнер если их можно передать напрямую с помощью .putExtra()?
И опять-же какой смысл оборачивать String и int в контейнер если их можно передать напрямую с помощью .putExtra()?
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
нет, не передать с помощью интента
если у вас целый объект то легче обернуть его целиком чем каждое его поле по отдельности
если у вас целый объект то легче обернуть его целиком чем каждое его поле по отдельности
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
rezak90, Спасибо, понял.
(кнопки "Спасибо" не нашел, пишу текстом, сорри за оффтоп)
(кнопки "Спасибо" не нашел, пишу текстом, сорри за оффтоп)
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
в чем отличие в передаче объекта через intent как Serializable от Parceable?
как предпочтительнее передавать и в каких случаях?
как предпочтительнее передавать и в каких случаях?
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Parcelable интерфейс создан специально для Android. Он был создан как более эффективный, чем Serializable, и для обхода некоторых проблем с Java сериализацией.
http://stackoverflow.com/questions/3323 ... rializable
http://stackoverflow.com/questions/3323 ... rializable
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Всем привет. Отличные уроки!
Есть, правда, один вопрос: создал проект для этого урока по инструкции, скопировал все коды как нужно, все вроде бы Ок. Однако при создании нового Activity происходит ошибка на операторе MyObject myObj = (MyObject) getIntent().getParcelableExtra(
MyObject.class.getCanonicalName());
И новое Activity закрывается. При нажатии кнопки создания Activity ситуация повторяется.
getParcelableExtra() возвращает null. Что я делаю не так?
Спасибо
Есть, правда, один вопрос: создал проект для этого урока по инструкции, скопировал все коды как нужно, все вроде бы Ок. Однако при создании нового Activity происходит ошибка на операторе MyObject myObj = (MyObject) getIntent().getParcelableExtra(
MyObject.class.getCanonicalName());
И новое Activity закрывается. При нажатии кнопки создания Activity ситуация повторяется.
getParcelableExtra() возвращает null. Что я делаю не так?
Спасибо
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Parcelable как очередь чтоли? В каком порядке записываем данные, в таком и извлекаем?
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
У меня тоже самое - приложение падает при запуске второго Activity.Kirhgoph писал(а):создал проект для этого урока по инструкции, скопировал все коды как нужно, все вроде бы Ок. Однако при создании нового Activity происходит ошибка на операторе MyObject myObj = (MyObject) getIntent().getParcelableExtra(
MyObject.class.getCanonicalName());
И новое Activity закрывается. При нажатии кнопки создания Activity ситуация повторяется.
getParcelableExtra() возвращает null.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Значит ничего не передаете. Всё просто.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Разобрался, в чем причина - просто нужно было добавить второе Activity в манифест (см. урок 21).RomanNT писал(а):У меня тоже самое - приложение падает при запуске второго Activity.Kirhgoph писал(а):создал проект для этого урока по инструкции, скопировал все коды как нужно, все вроде бы Ок. Однако при создании нового Activity происходит ошибка на операторе MyObject myObj = (MyObject) getIntent().getParcelableExtra(
MyObject.class.getCanonicalName());
И новое Activity закрывается. При нажатии кнопки создания Activity ситуация повторяется.
getParcelableExtra() возвращает null.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
А если один из параметров 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
[quote="Isaev"][/quote]
parcel.writeLong(date.getTime()); //write
date = new Date(parcel.readLong()); //read
parcel.writeLong(date.getTime()); //write
date = new Date(parcel.readLong()); //read
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
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
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
А при работе с диалогом DatePickerDialog
viewtopic.php?f=3&t=464&p=19610#p19610
вопросов не возникало
Это косяк Android, поэтому в коде +1 к месяцу.
viewtopic.php?f=3&t=464&p=19610#p19610
вопросов не возникало
Это косяк Android, поэтому в коде +1 к месяцу.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
значит при чтении корректируем сразуtrew писал(а):А при работе с диалогом DatePickerDialog
viewtopic.php?f=3&t=464&p=19610#p19610
вопросов не возникало
Это косяк Android, поэтому в коде +1 к месяцу.
Код: Выделить всё
d = (Date) parcel.readValue(null);
d.setMonth(d.getMonth()-1);
а месяц не заметил, сейчас гляну
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Блин, но почему же вы считаете что это косяк андроида? Почему??? Какое пространство имен у класса? java.util.Calendar? Тогда причем тут андроид??trew писал(а):А при работе с диалогом DatePickerDialog
viewtopic.php?f=3&t=464&p=19610#p19610
вопросов не возникало
Это косяк Android, поэтому в коде +1 к месяцу.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Зеленые совсем. Что с них взять?no-- писал(а):Блин, но почему же вы считаете что это косяк андроида? Почему??? Какое пространство имен у класса? java.util.Calendar? Тогда причем тут андроид??trew писал(а):А при работе с диалогом DatePickerDialog
viewtopic.php?f=3&t=464&p=19610#p19610
вопросов не возникало
Это косяк Android, поэтому в коде +1 к месяцу.
Настоящие тру программисты с 0 начинают считать, а не с 1.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 69. Передаем Parcelable объекты с помощью Intent
Спасибо за уроки, все доступно, вот только я все же рекомендовал бы использовать @Override в реализации методов интерфейса, для наглядности. В 1.6 возможность добавили - стоит использовать .
Re: Урок 69. Ошибка
все вроде бы стартует, а при попытке нажать на кнопку выдает такую ошибку
- Вложения
-
- ошибка_69_урок.JPG (200.74 КБ) 15378 просмотров