3

我知道我们可以通过意图调用在活动之间移动。但是有没有办法从一个活动转移到活动托管的特定片段?例如,如果我有一个包含 2 个片段 f1 和 f2 的活动 A,有没有办法通过意图调用直接从另一个活动 B 移动到片段 f2?提前致谢。

4

2 回答 2

4

嗯,直接通过意图调用是不可能的,您必须启动活动 A 并通过意图中的额外/捆绑,您可以指定活动 A 以打开片段 f2,这意味着您必须自己编写逻辑......不可能直接.. 干杯 在活动 B 中尝试此操作,它将打开 ActivityA 并发送一个字符串,您可以在该活动中检查该字符串,基于该字符串您将添加片段:

 Intent i = new Intent(this, ActivityA.class);
 i.putExtra("toOpen", "fragment 1");
 startActivity(i);

并在 ActivityA oncreate

 Bundle extras = getIntent().getExtras();
 String toOpen = extras.getString("toOpen");

检查 toOpen 字符串并打开适当的片段。您是否也在问如何显示/添加片段,因为那是一个全新的球类游戏 :) 但这将是管理片段http://developer.android.com/的一个不错的开始指南/组件/fragments.html

于 2013-01-24T08:55:49.633 回答
2

当您从按钮上的活动中打开片段时,单击编写此代码

Fragment myfragment;
myfragment = new Your_Fragment_Name();
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.add(R.id.container, myfragment);
fragmentTransaction.commit();

在我的代码中,使用了一个 id container:。这是打开 Fragment 的布局的 id。

如果你还从活动中向片段发送一个值,那么

Bundle bundle = new Bundle();
bundle.putInt("value",value );

myfragment.setArguments(bundle);

此行是在创建 FragmentManager 对象后添加的

这段代码很有帮助

于 2017-04-18T06:14:36.507 回答