參考>http://blog.csdn.net/stzy00/article/details/44764537
官方文檔:http://developer.android.google.cn/reference/android/app/Fragment.html
當(dāng)我進(jìn)行Fragment中傳遞參數(shù)時(shí)秸架,發(fā)現(xiàn)AndroidStudio就會(huì)爆紅蝌麸,運(yùn)行時(shí)木有問(wèn)題揉燃,但到打包時(shí)就會(huì)有問(wèn)題了
為什么亿笤,為什么渔伯,腫么辦~~~
如果將Fragment換做是普通的對(duì)象,比如是自己自定義的bean對(duì)象,在構(gòu)造方法中傳遞參數(shù)是沒(méi)問(wèn)題的.但是Fragment和Activity一樣,是有生命周期的組件,并不能看做是一般的類.于是說(shuō)在構(gòu)造方法中不要直接用類似的這種方式去寫。
具體原因:
因?yàn)锳ctivity橫豎屏切換的時(shí)候珍手,會(huì)重新構(gòu)造Fragment类溢,默認(rèn)調(diào)用的就是Fragment的無(wú)參構(gòu)造方法。
如果通過(guò) setArguments來(lái)傳遞參數(shù)的話莺掠,Activity在構(gòu)造Fragment時(shí)會(huì)通過(guò)反射無(wú)參構(gòu)造實(shí)例化一個(gè)新的Fragment衫嵌,并且給mArgments初始化為原先的值。
如果參數(shù)是通過(guò)構(gòu)造方法傳遞的彻秆,在重新構(gòu)造Fragment實(shí)例之后楔绞,數(shù)據(jù)就丟失了
官方寫法