Intereting Posts
Saripaar formvalidation не работает второй раз в котлине Kotlin использует утверждения времени выполнения для проверки нуля – служебные накладные расходы? GridView внутри ListRow с использованием библиотеки Leanback Как слить два набора перечислений в kotlin с одним и тем же родительским интерфейсом? Почему я могу вставить код строки до DayForecast (HashMap (it)) в Котлин? Обработчик для запуска задачи каждые 5 секунд. Котлин ListView может отображаться в Activity, но не может отображаться в фрагменте Зависимости Bintray не будут загружаться в InteliJ Как получить Kotlin KClass из строки имени класса пакета? Kotlin: получить суперкласс из объекта класса – ошибка вывода объекта Android Studio 3 beta 2 ClassNotFound в модульных тестах kotlin Идиоматический способ вызова методов через отражение в Котлине Определение размера для настраиваемого типа массива в Android Kotlin Записать вызов / транзакцию в TransactionalEventListener Как составить nullables в Kotlin

Как передать пользовательский объект через намерение в kotlin

fun launchNextScreen(context: Context, people: People): Intent { val intent = Intent(context, NextScreenActivity::class.java) intent.putExtra(EXTRA_PEOPLE, (Parcelable) people) //intent.putExtra(EXTRA_PEOPLE, people as Parcelable) //intent.putExtra(EXTRA_PEOPLE, people) // tried above all three ways return intent } 

Пробовал выше код, чтобы передать людям объект People типа через намерение, используя kotlin, но получая ошибку. Пожалуйста, помогите решить это для меня.

в kotlin, чтобы начать активность и передать некоторые данные, вы можете попробовать что-то вроде этого:

startActivity(intentFor<NameOfActivity>(STRING to data))

Повеселись

Класс «Ваш человек» должен реализовать Parcelable следующим образом:

 class People(): Parcelable{ // stuff } 

Android-студия покажет вам ошибку. Просто переместите курсор на «Люди» и нажмите alt + enter. Теперь он должен показать возможность генерации реализации Parcelable.

Этот сгенерированный код будет содержать что-то вроде

 parcel.writeString(member1) parcel.writeInt(member2) 

и где-то еще

 member1=parcel.readString() member2=parcel.readInt() 

Убедитесь, что все члены содержатся в этих методах, и при его изменении убедитесь, что чтение и запись происходят в том же порядке.

Во-первых, убедитесь, что вы реализуете Serializable в классе People -s:

 class People : Serializable { //your stuff } 

Убедитесь, что ваши внутренние поля класса People также реализуют интерфейс Serializable , иначе вы получите ошибку времени выполнения.

Затем он должен работать:

  fun launchNextScreen(context: Context, people: People): Intent { val intent = Intent(context, NextScreenActivity::class.java) intent.putExtra(EXTRA_PEOPLE, people) return intent }