我是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
这是一种错误的做法吗?框架使用的空构造函数是通过反射或类似方法实例化片段吗?
答案 0 :(得分:2)
当Android想要重新创建片段(即app来自背景到前景)时,它将使用默认的无参数构造函数(不带参数)。所以你不应该重载构造函数。