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

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

</pre><p>Error:Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment],没有构造函数啊,这是为什么呢,开始想不通,后来查找半天终于发现了问题所在:</p><p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">因为Fragment源码中用到反射构造了对象,是无参数的构造函数。可以在ShowSynopsis上面加上@SuppressLint("ValidFragment"),忽略警告。</p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">或者加入这句代码@SuppressLint(“ValidFragment")</p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">当然,以后在做这个类似时候最好的方法就是不要去重写起构造函数,直接写一个</p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 15px; line-height: 35px;"><pre name="code" class="java">public static final YoFragment newInstance(String a)
{
<pre name="code" class="java" style="color: rgb(85, 85, 85); font-size: 15px; line-height: 35px;">YourFragment <span style="font-family: 'microsoft yahei';">f = new  </span><span style="font-family: 'microsoft yahei';">YourFragment </span><span style="font-family: 'microsoft yahei';">();</span>
Bundle bdl = new Bundle(); bdl.putString("key", a); f.setArguments(bdl); return f;}
 利用这样的方式来传递参数,就可以不用去重写带参的构造了 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值