从FragmentActivity向片段添加一个bundle

7

我在我的代码中有以下这些行

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fargmentTag);

现在我想给我的片段添加一个包(bundle),我该怎么做?

3个回答

10

尝试这样做:

在你的FragmentActivity类的任何地方,放置如下代码:

MyFragmentClass mFrag = new MyFragmentClass();
Bundle bundle = new Bundle();
bundle.putString("DocNum", docNum);   //parameters are (key, value).
mFrag.setArguments(bundle);

getSupportFragmentManager().beginTransaction().replace(R.id.page_fragments, mFrag).commit();

我正在使用 "import android.support.v4.app.FragmentActivity;" 所以我使用 "getSupportFragmentManager()"。 因此,总结上面的代码,您创建了一个包实例和一个片段实例。 然后,您使用“mFrag.setArguments(bundle)”将这两个对象关联起来。 因此,现在“bundle”与您的 MyFragmentClass 的该实例相关联。 因此,在您的 MyFragmentClass 中的任何位置,都可以通过调用以下方法检索 bundle:

Bundle bundle = getArguments();
String mDocNum = bundle.getString("DocNum");

5
ft.replace(R.id.fragment_content, fragment, fargmentTag);之前添加以下行:fragment.setArguments(bundle)

如何在另一端接收它们? - user1730789
1
@user1730789:getArguments() 将检索您在上面设置的 bundle。 - hwrdprkns

0

在调用replace之前,只需添加fragment.setArguments(bundle)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接