如何从活动开始片段 [英] How to start Fragment from an Activity

查看:84
本文介绍了如何从活动开始片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经想从MainActivity启动我的RecipientFragment并将数据从MainActivity传递到Fragment上.这是我已经实现的代码.但是片段不会开始.

I already want to start my RecipientFragment from my MainActivity and pass data onto the Fragment from my MainActivity. Here is the code that I have implemented. But the fragment does not start.

Bundle bundle = new Bundle();
bundle.putString(ParseConstants.KEY_FILE_TYPE, fileType);
RecipientsFragment keyfile = new RecipientsFragment();
keyfile.setArguments(bundle);
Fragment newFragment = new RecipientsFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.commit();

我还想知道如何传递intent.setData并在Fragment中获取该数据.目前,我有以下代码:

I also want to know how to pass intent.setData and get that data in Fragment. Currently I have below code:

RecipientFragment

RecipientFragment

mMediaUri = getActivity().getIntent().getData();

MainActivity

MainActivity

Intent recipientsIntent = new Intent(this, RecipientsFragment.class);
        recipientsIntent.setData(mMediaUri);

推荐答案

您可以在活动中添加或替换片段.在活动布局xml文件中创建FrameLayout.

You can either add or replace fragment in your activity. Create a FrameLayout in activity layout xml file.

然后在您的活动中执行此操作,以添加片段:

Then do this in your activity to add fragment:

FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.container,YOUR_FRAGMENT_NAME,YOUR_FRAGMENT_STRING_TAG);
transaction.addToBackStack(null);
transaction.commit();

替换片段,请执行以下操作:

And to replace fragment do this:

FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.container,YOUR_FRAGMENT_NAME,YOUR_FRAGMENT_STRING_TAG);
transaction.addToBackStack(null);
transaction.commit();

有关向活动中添加片段的信息,请参见Android文档或以下有关SO的相关问题:

See Android documentation on adding a fragment to an activity or following related questions on SO:

add(),replace()和addToBackStack()之间的区别

add()和replace()方法之间的基本区别片段的

add()&用Fragment的生命周期替换()

这篇关于如何从活动开始片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆