Передача объекта в API уровня 30, версия Android 11Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Передача объекта в API уровня 30, версия Android 11

Сообщение Anonymous »


Я пытаюсь передать объект данных из одного действия в другое, используя parcelable. он не работает в версиях API 30 и Android 11. Я хотел бы знать, как передать объект большого размера в Android 11. Я попробовал код ниже. выдает ошибку типа

ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основное Процесс: com.example.exoone, PID: 3989. java.lang.NoSuchMethodError: нет виртуального метода getParcelableExtra(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; в классе Landroid/content/Intent; или его суперклассы (объявление «android.content.Intent» появляется в /system/framework/framework.jar) на com.example.exoone.PlayerActivity.onCreate(PlayerActivity.kt:20) в android.app.Activity.performCreate(Activity.java:7994) в android.app.Activity.performCreate(Activity.java:7978) в android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) в android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) в android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135) в android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) в android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) в android.os.Handler.dispatchMessage(Handler.java:106) в android.os.Looper.loop(Looper.java:223) в android.app.ActivityThread.main(ActivityThread.java:7656) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

в моем основном файле активности

класс MainActivity : AppCompatActivity() { val TAG = "MyTag" привязка lateinit var: ActivityMainBinding var myArray:ArrayList = ArrayList() переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) привязка = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) для (я в 1..20){ myArray.add(MyTestDatas("title $i","Некоторое описание $i")) } Log.i(TAG,myArray.toString()) привязка.btnSend.setOnClickListener { val намерение = Intent(this,PlayerActivity::class.java) Intent.putExtra("myData",myArray) startActivity (намерение) } } } в моей активности получателя

класс PlayerActivity: AppCompatActivity(){ val TAG = "второй тег" частный val viewBinding от lazy(LazyThreadSafetyMode.NONE) { ActivityPlayerBinding.inflate(layoutInflater) } @RequiresApi(Build.VERSION_CODES.TIRAMISU) переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(viewBinding.root) val getValue = Intent.getParcelableExtra("myData",MyTestDatas::class.java) Log.i(TAG,getValue.toString()) } } в моем классе данных

импортировать android.os.Parcel импортировать android.os.Parcelable класс данных MyTestDatas( val title:Строка, описание значения:Строка ):Посылка { конструктор(посылка: Посылка): это( посылка.readString().toString(), посылка.readString().toString() ) { } переопределить fun writeToParcel(parcel: Parcel, flags: Int) { посылка.writeString(название) посылка.writeString(описание) } переопределить удовольствие defineContents(): Int { вернуть 0 } сопутствующий объект CREATOR : Parcelable.Creator { переопределить удовольствие createFromParcel(parcel: Parcel): MyTestDatas { вернуть MyTestDatas (посылка) } переопределить fun newArray(size: Int): Array { вернуть массивOfNulls (размер) } } } Может ли кто-нибудь помочь мне передать объект из действия в другое действие в Android 11?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»