ram*_* jc 2 java android android-activity kotlin
我试图将一个对象从“Transfer”类(java)传递到“Limit”类(Kotlin),如果我尝试获取通过“ Bundle”使用data.name,编译器并没有报错,但是当我进入到这个问题的activity中时,如何在我的intent中通过Bundle()获取一个对象呢?
\npublic class Transfer {\n \n private void sendBundle(){\n Usermodel doTransfer = fillUserModel();\n Limit.intentTransfer(doTransfer, "France");\n }\n \n \n private UserModel fillUserModel() {\n Usermodel newUserModel = new Usermodel();\n usermodel.setName("Jonas");\n userModel.setAge("30");\n usermodel.setIdNumber("123458");\n userModel.setOccupation("dev");\n userModel.setFormation("CC");\n \n return newUserModel ;\n }\n\n}\n\nRun Code Online (Sandbox Code Playgroud)\n\nclass UserModel(\n\n val name: String? = "",\n val age: String? ="",\n val idNumber: String? ="",\n val occupation: String? ="",\n val formation: String? ="",\n)\n\nRun Code Online (Sandbox Code Playgroud)\nclass Limit {\n\n private val data: Usermodel by bindBundle(DATA)\n\n private val country: String by bindBundle(COUNTRY)\n\n override fun onCreate(savedInstanceState: Bundle?) {\n\n //here I can get the values \xe2\x80\x8b\xe2\x80\x8busing data.name or data.age \n // and android studio does not point out error\n\n}\n\n\ncompanion object {\n \n const val DATA = "data"\n const val COUNTRY= "CountryUser"\n}\n\n\nfun intentTransfer (test : UserModel, CountryUser : String)\n : Intent {\n return Intent(context, Limit::class.java).apply {\n putExtras(\n BundleOf(\n DATA to test,\n COUNTRY to CountryUser \n )\n )\n }\n }\n\nRun Code Online (Sandbox Code Playgroud)\n输出\n当我进入活动时:
\n java.lang.IllegalArgumentException: Ilegal value type android.model.UserModel for key "data"\n\nRun Code Online (Sandbox Code Playgroud)\n
您将需要创建Parcelable您要通过Bundle.
在你的gradle中:
apply plugin: 'org.jetbrains.kotlin.android.extensions'
Run Code Online (Sandbox Code Playgroud)
你的数据类应该是这样的:
@Parcelize
data class UserModel(
val name: String? = "",
val age: String? ="",
val idNumber: String? ="",
val occupation: String? ="",
val formation: String? ="",
) : Parcelable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4136 次 |
| 最近记录: |