|
|
胆小的冰淇淋 · 男子安装空调从6楼坠落至2楼平台,经抢救脱离 ...· 10 月前 · |
|
|
光明磊落的啄木鸟 · 吉尔吉斯斯坦国家概况· 1 年前 · |
|
|
睿智的羊肉串 · 老在说米其林一二三星,你真的懂它是什么意思?· 1 年前 · |
|
|
任性的香瓜 · 六安一中、二中、城北小学…这些老师被评为优秀 ...· 1 年前 · |
|
|
不拘小节的牛排 · 育才、绿城重磅官宣!杭州家长速看最全九年一贯 ...· 2 年前 · |
我要把这个递给你:
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:
|
|
光明磊落的啄木鸟 · 吉尔吉斯斯坦国家概况 1 年前 |
|
|
睿智的羊肉串 · 老在说米其林一二三星,你真的懂它是什么意思? 1 年前 |
|
|
任性的香瓜 · 六安一中、二中、城北小学…这些老师被评为优秀班主... 1 年前 |