在创建时将参数传递给Fragment

时间:2016-02-08 14:29:03

标签: android android-fragments

我是Android编程的新手,我正在研究一些组件和架构。

我现在正在测试碎片。

我需要将自定义对象列表从Activity传递给嵌套Fragment

我读到了这个问题:How to pass a variable from Activity to Fragment, and pass it back?我注意到Bundle集合是在片段创建过程中传递参数的最佳做法。

Bundle bundle = new Bundle();
String myMessage = "Stackoverflow is cool!";
bundle.putString("message", myMessage );
FragmentClass fragInfo = new FragmentClass();
fragInfo.setArguments(bundle);

但是我想知道为什么我不能通过构造函数传递我的参数,比如说:

List<CustomObject> myParameter = new ArrayList<CustomObject>();
MyFragment fragInfo = new MyFragment(myParameter); // custom Fragment constructor

这是一种错误的做法吗?框架使用的空构造函数是通过反射或类似方法实例化片段吗?

1 个答案:

答案 0 :(得分:2)

当Android想要重新创建片段(即app来自背景到前景)时,它将使用默认的无参数构造函数(不带参数)。所以你不应该重载构造函数。