标签:
我们在使用Avtivity+Fragment组合方式建立界面的时候,通常会在Activity中new若干个Fragment,但是在Fragment中需要传参数的时候,我们直接在Fragment中用构造函数的方式传参数会不会有问题呢?没错,我们在AndroidStudio中是用构造方法的方式传参数,会报错,简单是说:"Fragment中穿参数赋值的方式可能造成内存泄露问题",代码如下:
public MyFragment(Context mContext,List<String> list){ this.list = list; this.mContext = mContext; }
这一块代码会在MyFragment底下爆红,为什么呢?就是说要是用这种方式进行传参赋值的话,Fragment在销毁的时候,这些值可能还存在,所以就造成了内存泄漏.为什么?我也不知道,我老大告诉我的..,那要是想要传参赋值该怎么办?可以用如下代码来代替
public MyFragment(){} public static MyFragment getInstance(Context mContext,List<String> list){ MyFragment fragment = new Fragment(); Bubdle argument = new Bundle(); argument.putSerializable("CONTEXT",mContext); argument.putSerializable("LIST",list); fragment.setArgument(argument); return fragment; }
之后在外部取出想要的值赋值即可,这样就解决的报错问题;
未完待续...
Fragment构造问题,Android中显示文字格式问题,判断是哪一个类跳入的当前类问题
标签:
原文地址:http://www.cnblogs.com/redwolf/p/5559802.html