从事Android开发行也也有两三年了,但是从来没有在乎过一些细节,就从今天来吧,记录我遇到的坑;
都知道,Android 传递数据,包涵传递对象,传递的方法有好多中;无论是Fragment 向Activity传递数据,还是Activity向Fragment中传递,
传递数据的时候 像j简单数据类型的数据传递直接就可以用 Intent 的 putExture();
今天遇到的坑是传递对象,在传递的时候可以用Bundle 传递对象,而且要序列化他的参数类型,
注意一下,重点来了,在给模型序列化的时候,把里边要用到的模型都要序列化,不然会出现,打印数据都没问题,但是传递的时候就会直接在接收端出现NullPointerException(空指针异常),从log或者Debug来看都是有数据的,这就是遇到的坑了,
Activity 向 Fragment 传递数据;用的是Arguments
Bundle data = new Bundle() ;
data.putString("tag", userNunberValue) ;
MeFragment meFragment = new MeFragment() ;
meFragment.setArguments(data) ;
fragment 里接受的时候
Bundle data = getArguments() ;
userNumberValue = data.getString("tag") ;
Fragment 向Activity传递对象 用的是序列化
Intent intent=new Intent();
intent.setClass(getContext(),Activity);
Bundle bundle=newBundle();
bundle.putSerializable("devicelist",对象);
intent.putExtras(bundle);
context().startActivity(intent);
今天就这样了,欢迎各位阅读过的大佬批评指正
网友评论