從事Android開發(fā)行也也有兩三年了债蜜,但是從來沒有在乎過一些細(xì)節(jié),就從今天來吧究反,記錄我遇到的坑寻定;
都知道,Android 傳遞數(shù)據(jù)精耐,包涵傳遞對(duì)象狼速,傳遞的方法有好多中;無論是Fragment 向Activity傳遞數(shù)據(jù)卦停,還是Activity向Fragment中傳遞向胡,
傳遞數(shù)據(jù)的時(shí)候 像j簡(jiǎn)單數(shù)據(jù)類型的數(shù)據(jù)傳遞直接就可以用 Intent 的 putExture();
今天遇到的坑是傳遞對(duì)象,在傳遞的時(shí)候可以用Bundle 傳遞對(duì)象惊完,而且要序列化他的參數(shù)類型僵芹,
注意一下,重點(diǎn)來了小槐,在給模型序列化的時(shí)候拇派,把里邊要用到的模型都要序列化,不然會(huì)出現(xiàn),打印數(shù)據(jù)都沒問題件豌,但是傳遞的時(shí)候就會(huì)直接在接收端出現(xiàn)NullPointerException(空指針異常)桐腌,從log或者Debug來看都是有數(shù)據(jù)的,這就是遇到的坑了苟径,
Activity 向 Fragment 傳遞數(shù)據(jù)案站;用的是Arguments
Bundle data = new Bundle() ;
data.putString("tag", userNunberValue) ;
MeFragment?meFragment = new MeFragment() ;
meFragment.setArguments(data) ;
fragment 里接受的時(shí)候
Bundle data = getArguments() ;
userNumberValue = data.getString("tag") ;
Fragment 向Activity傳遞對(duì)象 用的是序列化
Intent intent=new Intent();
intent.setClass(getContext(),Activity);
Bundle bundle=newBundle();
bundle.putSerializable("devicelist",對(duì)象);
intent.putExtras(bundle);
context().startActivity(intent);
今天就這樣了,歡迎各位閱讀過的大佬批評(píng)指正