如何在android Kotlin中将对象从一个活动传递到另一个活动?

湿婆

我是 android Kotlin 的新手。我试图将对象从一个活动传递到另一个我卡住的活动,

我的课 :

data class MyPojo(val name: String, val age: String) : Serializable

第一活动:

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val editTextName = findViewById<EditText>(R.id.EditName)
    val editTextAge = findViewById<EditText>(R.id.EditAge)

    val button = findViewById<Button>(R.id.ButtonSend)

    button.setOnClickListener {

      val object1 = MyPojo(editTextName.text.toString(),editTextAge.text.toString())

        val intent = Intent(this,Main2Activity::class.java)
        intent.putExtra("Obj",object1)
        startActivity(intent)
    }
  }
}

第二个活动:

class Main2Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main2)

    val obj :MyPojo = intent.getSerializableExtra("obj") as MyPojo

    val textView : TextView = findViewById(R.id.textViewName)
    val textViewAge : TextView = findViewById(R.id.textViewAge)

    textView.setText(obj.name)
    textViewAge.setText(obj.age)

  }
}

错误 :

6-28 19:35:58.625 22192-22192/com.example.evalai.passingobjecttoactivity E/AndroidRuntime:致命异常:主进程:com.example.evalai.passingobjecttoactivity,PID:22192 java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.evalai.passingobjecttoactivity/com.example.evalai.passingobjecttoactivity.Main2Activity}: kotlin.TypeCastException: null 不能在 android.app.ActivityThread 转换为非空类型 com.example.evalai.passingobjecttoactivity.MyPojo。 performLaunchActivity(ActivityThread.java:2379) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) at android.app.ActivityThread.access$800(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage( ActivityThread.java:1351) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:211) at android.app.ActivityThread.main(ActivityThread.java:5371) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com .android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740) 原因:kotlin.TypeCastException:null 不能转换为非空类型 com.example.evalai.passingobjecttoactivity.MyPojo at com.example.evalai.passingobjecttoactivity.Main2Activity.onCreate(Main2Activity.kt:14) at android.app.Activity.performCreate(Activity.java:5990) at android。 app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945) 处的reflect.Method.invoke(Method.java:372) com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 740)引起:kotlin.TypeCastException:在android.app的com.example.evalai.passingobjecttoactivity.Main2Activity.onCreate(Main2Activity.kt:14)处不能将null转换为非空类型com.example.evalai.passingobjecttoactivity.MyPojo .Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945) 处的reflect.Method.invoke(Method.java:372) com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 740)引起:kotlin.TypeCastException:在android.app的com.example.evalai.passingobjecttoactivity.Main2Activity.onCreate(Main2Activity.kt:14)处不能将null转换为非空类型com.example.evalai.passingobjecttoactivity.MyPojo .Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)在 android.app.Activity.performCreate(Activity.java: com.example.evalai.passingobjecttoactivity.Main2Activity.onCreate(Main2Activity.kt:14) 处的 com.example.evalai.passingobjecttoactivity.Main2Activity.onCreate(Main2Activity.kt:14) 处不能将 null 强制转换为非空类型 com.example.evalai.passingobjecttoactivity.MyPojo 5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)在 android.app.Activity.performCreate(Activity.java: com.example.evalai.passingobjecttoactivity.Main2Activity.onCreate(Main2Activity.kt:14) 处的 com.example.evalai.passingobjecttoactivity.Main2Activity.onCreate(Main2Activity.kt:14) 处不能将 null 强制转换为非空类型 com.example.evalai.passingobjecttoactivity.MyPojo 5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)

DAA

您提供的用于将 pojo 存储到 Intent 的密钥与您用来读取它的密钥不同(您使用“Obj”存储并使用“obj”读取)。

当您在 Main2Activity 中读取意图时,该键没有存储任何内容,因此您返回 null。而且,显然,您不能将 null 强制转换为 MyPojo。

为了避免这些问题,您应该始终为意图的键声明一个常量:

const val ARG_POJO = "argPojo"

并使用它来存储和读取它们:

店铺:

intent.putExtra(ARG_POJO, object1)

读:

val obj: MyPojo = intent.getSerializableExtra(ARG_POJO) as MyPojo

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据从一个活动传递到Xamarin.Android中的另一个活动

来自分类Dev

Android将2d int数组从一个活动传递到另一个错误

来自分类Dev

如何将ArrayList <CustomeObject>从一个活动传递到另一个活动?

来自分类Dev

如何将对象数组从一个控制器传递到另一个?

来自分类Dev

如何在Android中将对象列表从一个活动传递到另一个活动?

来自分类Dev

如何将不可包裹的物体从一个活动传递到另一个活动?

来自分类Dev

如何使用Intent将ArrayList <File>对象从一个活动传递到另一个活动?

来自分类Dev

Android-将意图从一个活动传递到另一个活动,该活动使用Firebase实现回调类

来自分类Dev

将数据从一个活动发送回另一个ANDROID KOTLIN

来自分类Dev

如何在JavaScript中将对象从一个文件传递到另一个文件?

来自分类Dev

如何将视频链接从一个活动传递到另一个活动?

来自分类Dev

如何在Android中将数据从一个活动发送到另一个活动的列表

来自分类Dev

在Android中将数据从一个活动传递到另一个活动时获取空值

来自分类Dev

Android将2d int数组从一个活动传递到另一个错误

来自分类Dev

如何从一个活动导航到另一个活动

来自分类Dev

如何在不使用Intent的情况下将对象从一个活动传递到另一个活动

来自分类Dev

如何在WPF中将对象从一个窗口绑定到另一个窗口中的另一个控件?(C#)

来自分类Dev

无法将信息从一个活动传递到另一个Activity Android Studio

来自分类Dev

如何在Android中将对象列表从一个活动传递到另一个活动?

来自分类Dev

如何将对象从一个JSP传递到另一个JSP?

来自分类Dev

如何在Android中将两个字符串从一个活动传递到另一个活动

来自分类Dev

如何在Xamarin Android中将图像从一个活动传递到另一个活动?

来自分类Dev

如何通过Java中的方法将对象从一个类传递到另一个类

来自分类Dev

如何将数据从一个活动传递到另一个列表视图活动?

来自分类Dev

如何将 JsonArray 从一个活动传递到另一个活动

来自分类Dev

如何在Java中将数据从一个json对象传递到另一个对象?

来自分类Dev

如何在angularjs中将对象数据从一个控制器传递到另一个控制器

来自分类Dev

当我在 android 中将包从一个活动传递到另一个活动时,为什么它不传递数据?

来自分类Dev

如何在Android应用程序中将数据从一个活动传递到另一个活动

Related 相关文章

  1. 1

    将数据从一个活动传递到Xamarin.Android中的另一个活动

  2. 2

    Android将2d int数组从一个活动传递到另一个错误

  3. 3

    如何将ArrayList <CustomeObject>从一个活动传递到另一个活动?

  4. 4

    如何将对象数组从一个控制器传递到另一个?

  5. 5

    如何在Android中将对象列表从一个活动传递到另一个活动?

  6. 6

    如何将不可包裹的物体从一个活动传递到另一个活动?

  7. 7

    如何使用Intent将ArrayList <File>对象从一个活动传递到另一个活动?

  8. 8

    Android-将意图从一个活动传递到另一个活动,该活动使用Firebase实现回调类

  9. 9

    将数据从一个活动发送回另一个ANDROID KOTLIN

  10. 10

    如何在JavaScript中将对象从一个文件传递到另一个文件?

  11. 11

    如何将视频链接从一个活动传递到另一个活动?

  12. 12

    如何在Android中将数据从一个活动发送到另一个活动的列表

  13. 13

    在Android中将数据从一个活动传递到另一个活动时获取空值

  14. 14

    Android将2d int数组从一个活动传递到另一个错误

  15. 15

    如何从一个活动导航到另一个活动

  16. 16

    如何在不使用Intent的情况下将对象从一个活动传递到另一个活动

  17. 17

    如何在WPF中将对象从一个窗口绑定到另一个窗口中的另一个控件?(C#)

  18. 18

    无法将信息从一个活动传递到另一个Activity Android Studio

  19. 19

    如何在Android中将对象列表从一个活动传递到另一个活动?

  20. 20

    如何将对象从一个JSP传递到另一个JSP?

  21. 21

    如何在Android中将两个字符串从一个活动传递到另一个活动

  22. 22

    如何在Xamarin Android中将图像从一个活动传递到另一个活动?

  23. 23

    如何通过Java中的方法将对象从一个类传递到另一个类

  24. 24

    如何将数据从一个活动传递到另一个列表视图活动?

  25. 25

    如何将 JsonArray 从一个活动传递到另一个活动

  26. 26

    如何在Java中将数据从一个json对象传递到另一个对象?

  27. 27

    如何在angularjs中将对象数据从一个控制器传递到另一个控制器

  28. 28

    当我在 android 中将包从一个活动传递到另一个活动时,为什么它不传递数据?

  29. 29

    如何在Android应用程序中将数据从一个活动传递到另一个活动

热门标签

归档