You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin数组通过Intent传递后Toast无法显示正确值求助

问题分析与解决

你的问题核心是Activity2中获取数组的方式错误,具体问题和修正方案如下:

错误点1:语法错误

你写的val newArr = intent("key4")是无效语法,Kotlin中Intent没有这种直接调用的方式,必须使用对应的getExtra系列方法。

错误点2:使用了过时且不匹配的方法

getSerializableExtra被标灰是因为该方法已过时,更关键的是:intArrayOf创建的IntArray是基本类型数组,它并没有实现Serializable接口,这也是你最终输出[!@c1b80a4](内存地址格式)的原因——你没有正确拿到数组对象。

正确实现步骤

1. 在Activity2中正确获取数组

Intent专门为基本类型数组提供了对应的获取方法,针对整型数组,直接使用getIntArrayExtra即可:

val newArr = intent.getIntArrayExtra("key4")

2. 正确显示数组内容

拿到数组后,同样通过contentToString()方法转换为可读字符串,同时建议加空判断避免崩溃:

Toast.makeText(applicationContext, "Received Array = ${newArr?.contentToString() ?: "Empty"}", Toast.LENGTH_LONG).show()

补充说明

Intent针对不同数据类型提供了专属的传递/获取方法,比如:

  • 字符串数组:getStringArrayExtra
  • 布尔数组:getBooleanArrayExtra
  • 自定义对象:现在推荐用putParcelableExtra/getParcelableExtra替代过时的Serializable方案

内容的提问来源于stack exchange,提问作者Paul Hinrichsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:59:51