首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >附加的意图有一系列我们不使用的对白--它们的目的是什么?

附加的意图有一系列我们不使用的对白--它们的目的是什么?
EN

Stack Overflow用户
提问于 2019-04-13 12:34:45
回答 1查看 27关注 0票数 0

在我的LandingClass (其中包含一个名为myList的ListView )中,每当单击来自ListView的项时,我们都希望触发另一个活动(DetailedActivity),因此代码应该如下所示:

现在,如果我们需要向详细的类提供额外的(额外)信息,比如我们刚才单击的myList.setOnItemClickListener{ view -> val intent = Intent(this, DetailedActivity::class.java) startActivity(intent) }中的元素的位置,代码将如下所示:myList.setOnItemClickListener{ parent, view, position, id -> val intent = Intent(this, DetailedActivity::class.java) intent.putExtra("thePosition (text)", position) startActivity(intent) },所以我的问题是,为什么在发送额外的意图时,我们需要一个父类和一个id,我看不到它们在任何地方被使用.?我在医生中没有看到一些帮助我理解的例子。所以有些问题:

  1. 我需要父、视图和id做什么?
  2. 如果我点击第三个元素,发送的位置(int)应该是2,如果列表是基于0索引的,对吗?
  3. 如果我想发送一个包含比职位更复杂的信息的包,我的代码(有额外的)会发生什么变化?考虑到所有的参数都有一个定义的类型,比如id是long类型。WHat如果我想发送一段文字而不是id?

https://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener -显示方法签名的官方文档

从我的研究(见上面的链接)中我注意到:

父AdapterView:发生单击的AdapterView。

  1. 我们为什么需要这个?任务是在哪里完成的,还是含蓄地知道?

视图视图:单击AdapterView中的视图(这将是适配器提供的视图) 位置int:视图在适配器中的位置。 id long:单击的项的行id。

不过,这并没有说明如何向DetailedActivity发送额外的复杂信息--不是位置(int)或id (long),而是可能是一个复杂对象数组,或者一段文本或其他什么.

EN

回答 1

Stack Overflow用户

发布于 2019-04-13 13:46:53

假设您的ListView包含一些新闻文章的标题。

通过单击列表项,您希望重定向到可以阅读文章全文的详细信息活动。

所有标题和项目都存储在List of Article对象中,每个对象都包含文章的标题和文本。

如何识别单击了哪个项目的标题?

这就是参数positionid的目的。

根据您的需要,您将选择一个或另一个,因此您将从List中获取文章的文本,并将其作为额外的内容传递给打开details活动的Intent

您知道可以创建非常复杂的ListView,其中每个项都是多个视图的容器或ListView本身。

这时您将需要parentview参数。

所有这些都是特定于应用程序的

如果你不需要它,但是参数是在你需要的时候使用的。

现为:

如果我想发送一个包含更复杂信息的Bundle

不过,这并没有说明如何向DetailedActivity发送额外的复杂信息

这是您构建SerializableParcelable Bundle的责任,并将其作为Intent的附加项,与setOnItemClickListener的可用参数无关。

这里有很多示例,在SO和其他站点中,可以将对象序列化为额外的对象,如

Cannot pass custom Object in an Intent: The Method Put Extra is Ambiguous for the type Intent

How to send an object from one Android Activity to another using Intents?

遵循这些标准,你将能够通过意图发送这个复杂的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55665493

复制
相关文章

相似问题

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