Я пытаюсь создать расширенный класс Intent
(я его называю DataIntent
), предоставив ему возможность удерживать «полезную нагрузку» типа Object (по сравнению с использованием встроенного средства для Uri
). DataIntent
расширяет класс Android Intent
.Расширение класса Intent ... received ClassCastException
Activity
Создает объект с расширенными возможностями без проблем, а вызов startActivityForResult()
уходит без проблем. Но, отвечая на вопрос Activity
, когда я вызываю метод getIntent()
, и попытаюсь отбросить его на мой DataIntent
, я брошу ClassCastException
.
Я понимаю, что это, вероятно, очень глупый вопрос - 1,000 извинения заранее - но кто-нибудь знает, почему я не могу бросить его на DataIntent
, так это то, что было использовано, чтобы начать новый Activity
и DataIntent
является потомком Intent
?
DataIntent dataIntent = (DataIntent)getIntent();
// invoked inside the responding Activity instance - throws a ClassCastException
Зачем вам это делать? Вам известно о 'http://developer.android.com/reference/android/content/Intent.html#putExtra(java.lang.String, android.os.Parcelable)'? –
Я бы предпочел держаться подальше от интерфейса Parcelable, потому что он излишне «тяжелый» - по сравнению с просто назначением ссылки на мой объект (все это обезвоживание/регидратация через процесс сериализации). – BonanzaDriver