我知道我们可以通过意向呼叫在活动之间移动。但有没有办法从一个活动转移到一个活动托管的特定片段?例如,如果我有一个托管2个片段f1和f2的活动A,有没有办法通过意图调用直接从另一个活动说B到片段f2? 提前谢谢。
答案 0 :(得分: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");
检查打开字符串并打开相应的片段.. 你是否也在询问如何展示/添加片段,因为这是一个完整的新球类游戏:)但这对管理片段来说是个不错的开始http://developer.android.com/guide/components/fragments.html
答案 1 :(得分:1)
当您从按钮上的活动中打开片段时,请单击 写这段代码
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对象后添加此行
此代码非常有用