![]() |
爱健身的作业本 · Jquery mobiscroll ...· 8 月前 · |
![]() |
开朗的长颈鹿 · Sora横空出世,生成式AI前景如何?数览A ...· 9 月前 · |
![]() |
八块腹肌的盒饭 · linux登录mongodb数据库 ...· 1 年前 · |
![]() |
忐忑的感冒药 · 集合 (C++/CX) | ...· 1 年前 · |
![]() |
腼腆的茶叶 · 校招黑名单和955公司名单 - 知乎· 1 年前 · |
我要把这个递给你:
private lateinit var memes: MutableList<Memes>
其中有这样一种模式:
class Memes (
@SerializedName("id") var id: Long,
@SerializedName("title") var title: String
)
从活动a到b。
我经常看到一对“解决方案”,但没有一种有效!
这是我最后一次尝试
val extras = Bundle()
val memesArrayList = ArrayList(memes)
val i = Intent(context, GalleryShow::class.java)
i.putExtras(extras)
i.putStringArrayListExtra("list", memesArrayList)
(context as Activity).startActivityForResult(i, 777)
然而,我得到了
Type mismatch: inferred type is ArrayList<Memes!> but ArrayList<String!>? was expected
on
memesArrayList
。
编辑:
这是我现在的最新尝试:
在活动A中,内部回收项目:
val extras = Bundle()
extras.putString("gal", "animals")
extras.putString("query", "")
val i = Intent(context, GalleryShow::class.java)
i.putExtra("list", memes.toTypedArray())
i.putExtras(extras)
(context as Activity).startActivityForResult(i, 777)
这是内部活动B:
private lateinit var memes: MutableList<Memes>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_gallery_show)
memes = (this?.intent?.extras?.get("list") as? Array<Memes>)?.asList()!!.toMutableList()
}
发布于 2021-06-15 16:33:54
您可以使用简单的
intent.putExtra
,而不必担心要使用哪个变种(如
put_____Extra
)。
在提取值时,可以使用
intent.extras
获取绑定,然后在绑定上使用
get()
并将其转换为适当的类型。这比试图找出要使用哪个
intent.get____Extra
函数来提取它要容易,因为您无论如何都要转换它。
无论您的数据类是可序列化的还是可解析的,下面的代码都可以工作。您不需要使用数组,因为ArrayLists本身是可序列化的,但是您确实需要从MutableList转换为ArrayList。
// Packing and sending the data:
![]() |
腼腆的茶叶 · 校招黑名单和955公司名单 - 知乎 1 年前 |