如何从 Activity 启动 Fragment [英] How to start Fragment from an Activity

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

问题描述

我已经想从我的 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:

收件人片段

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

主活动

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() 和replace() 与 Fragment 的生命周期

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

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