通过意向调用显示特定片段

时间:2013-01-24 08:45:52

标签: android android-intent

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

2 个答案:

答案 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对象后添加此行

此代码非常有用