如何从片段获取数据到另一个活动? (不是容器活动)[重复]
Posted
技术标签:
【中文标题】如何从片段获取数据到另一个活动? (不是容器活动)[重复]【英文标题】:How to get data from fragment to another activity? (Not container activity) [duplicate] 【发布时间】:2021-12-18 13:11:53 【问题描述】:所以我想要的是当用户从溢出菜单中选择“配置文件”时启动一个新活动(ProfileActivity),并且我想同时将一些数据传递给该 ProfileActivity。 如何正确地将数据从片段传输到不是片段本身容器的另一个活动?我执行以下操作:
1- 创建接口
interface IProfileToActivity
fun profileInfo(data: AllHeroes.Global)
2- 然后我在activity中继承
class ProfileActivity : AppCompatActivity(), IProfileToActivity
private lateinit var myBinding: ActivityProfileBinding
override fun profileInfo(data: AllHeroes.Global)
myBinding.tvUsername.text = data.name
myBinding.tvDivision.text = data.rank.rankName
Log.i("Apex Info 3", data.toString())
3- 从片段发送
override fun onViewCreated(view: View, savedInstanceState: Bundle?)
super.onViewCreated(view, savedInstanceState)
(activity as? IProfileToActivity)?.profileInfo(allInfoApexResponse.global)
mHeroesAdapter.heroesList(allAdapterListHero)
点击菜单中的 Profile 按钮后,数据应该转移到另一个活动中
override fun onOptionsItemSelected(item: MenuItem): Boolean
when (item.itemId)
R.id.action_profile ->
(activity as? IProfileToActivity)?.profileInfo(testApex)
startActivity(Intent(requireActivity(), ProfileActivity::class.java))
return true
return super.onOptionsItemSelected(item)
但是什么也没发生,为什么?我做错了什么?
【问题讨论】:
How to properly transfer data from a fragment to another activity that is not a container of the fragment itself?
活动包含片段,所以某处你是带着意图开始这个活动的,对吧?将数据传递给该意图
@a_local_nobody 我需要打包吗?或者只是如何发送意图?如果我从片段本身做它会有多正确?
***.com/questions/2091465/…
这能回答你的问题吗? Passing Data Between Fragments to Activity
【参考方案1】:
如果您从片段路由到另一个 Activity,您可以使用 putExtra
将数据放入 Intent,然后使用 getExtra
在 Activity 中接收。
片段内部,
Intent profileActivityIntent = new Intent(context,ProfileActivity.class);
profileActivityIntent.putExtra("dataKey",data);
startActivity(profileActivityIntent);
然后在 ProfileActivity 的 onCreate
方法中,
//assuming that data is a string
String dataFromFragment = getIntent().getStringExtra("dataKey");
Log.i("Data from fragment",dataFromFragment);
你不需要使用接口方法。 (如果您必须从一个片段路由到活动)。
【讨论】:
我需要打包吗?或者只是如何发送意图?可以举个更详细的例子吗? 让我为你编辑答案。以上是关于如何从片段获取数据到另一个活动? (不是容器活动)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将数据从一个片段发送到另一个片段时出错。 (两个片段都由一个活动托管)