AndroidStudio导入Eclipse项目Fragment构造函数注意问题

在Eclipse中,写一个Fragment,重写其构造函数为有参构造函数,这似乎没什么问题,的确也没问题,我一直在Eclipse里面开发都没问题,这两天将项目移植到AndroidStudio中,跑起来没问题,一旦打包就出问题了,问题如下:

Error:Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment],没有构造函数啊,这是为什么呢,开始想不通,后来查找半天终于发现了问题所在:

因为Fragment源码中用到反射构造了对象,是无参数的构造函数。可以在ShowSynopsis上面加上@SuppressLint("ValidFragment"),忽略警告。

或者加入这句代码@SuppressLint(“ValidFragment")

当然,以后在做这个类似时候最好的方法就是不要去重写起构造函数,直接写一个

public static final YoFragment newInstance(String a)
{
YourFragment f = new  YourFragment ();
Bundle bdl = new Bundle(); bdl.putString("key", a); f.setArguments(bdl); return f;}
 利用这样的方式来传递参数,就可以不用去重写带参的构造了 
  



你可能感兴趣的:(AndroidStudio导入Eclipse项目Fragment构造函数注意问题)