6

我的代码中有以下几行

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

现在我想在我的片段中添加一个包。我怎样才能做到这一点 ?

4

3 回答 3

9

尝试这个:

在 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 = getArguments();
String mDocNum = bundle.getString("DocNum");
于 2014-08-26T21:25:45.950 回答
5

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

fragment.setArguments(bundle).

于 2013-04-17T07:13:52.900 回答
0

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

于 2013-04-17T07:16:34.927 回答