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