刚开始一直纠结于Intent只能put像int, String之类的简单参数, 知道最近才发现了一下的方法.
一>, 使用Intent传递实体类对象
首先实体类需要
implements Serializable然后
Intent broadIntent = new Intent(); Bundle bundle = new Bundle(); bundle.putInt("flag", C.BroadFlags.Login); bundle.putSerializable(C.BroadKey.UserInfo, userInfo); broadIntent.putExtras(bundle);就可以了.
接收时:
RetUserInform userInfo = (RetUserInform) intent .getSerializableExtra(C.BroadKey.UserInfo);
二>, 使用Intent传递复杂参数的List
Intent broadIntent = new Intent(); broadIntent.setAction("com.ytu.enetmobile.servicesBroadcast"); Bundle castBundle = new Bundle(); castBundle.putInt("flag", C.BroadFlags.GetInfo); castBundle.putSerializable(C.BroadKey.Info, list.toArray()); broadIntent.putExtras(castBundle);
接收
Object[] cobjs = (Object[]) intent.getSerializableExtra(C.BroadKey.Info); for(Object obj:cobjs){ list.add((Info)obj); }
同样也要
implements Serializable