如何从活动开始片段 [英] How to start Fragment from an Activity
问题描述
我已经想从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()之间的区别
这篇关于如何从活动开始片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!