我在我的代码中有以下这些行
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fargmentTag);
现在我想给我的片段添加一个包(bundle),我该怎么做?
我在我的代码中有以下这些行
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fargmentTag);
现在我想给我的片段添加一个包(bundle),我该怎么做?
尝试这样做:
在你的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");
ft.replace(R.id.fragment_content, fragment, fargmentTag);
之前添加以下行:fragment.setArguments(bundle)
。在调用replace
之前,只需添加fragment.setArguments(bundle)