首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从活动A传递和检索MutableList或ArrayList到B

从活动A传递和检索MutableList或ArrayList到B
EN

Stack Overflow用户
提问于 2021-06-15 15:49:06
回答 1查看 247关注 0票数 0

我要把这个递给你:

代码语言:javascript
运行
复制
private lateinit var memes: MutableList<Memes>

其中有这样一种模式:

代码语言:javascript
运行
复制
class Memes (
    @SerializedName("id") var id: Long,
    @SerializedName("title") var title: String
)

从活动a到b。

我经常看到一对“解决方案”,但没有一种有效!

这是我最后一次尝试

代码语言:javascript
运行
复制
    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中,内部回收项目:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
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()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-15 16:33:54

您可以使用简单的intent.putExtra,而不必担心要使用哪个变种(如put_____Extra )。

在提取值时,可以使用intent.extras获取绑定,然后在绑定上使用get()并将其转换为适当的类型。这比试图找出要使用哪个intent.get____Extra函数来提取它要容易,因为您无论如何都要转换它。

无论您的数据类是可序列化的还是可解析的,下面的代码都可以工作。您不需要使用数组,因为ArrayLists本身是可序列化的,但是您确实需要从MutableList转换为ArrayList。

代码语言:javascript
运行
复制
// Packing and sending the data:
val i = Intent(context, GalleryShow::class.java)
i.putExtra("list", ArrayList(memes)) // where memes is your MutableList<Meme> property
startActivityForResult(i, 777)

// Unpacking the data in the other activity:
memes = intent.extras?.get("list") as MutableList<Meme>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67989536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档