前言:在页面Activity跳转时,通过intent.putExtra()传递数据,出现接收到的实体类对象属性为空的问题解决。

一. 数据的组装跳转,传递一个序列化的实体对象。

    // 组装数据,跳转页面    Intent intent = new Intent();    intent.setClass(getActivity(), MonitorActivity.class);    intent.putExtra("monitorItem",(MonitorItem) (dataList.get(position)));                startActivity(intent);

二. 在另一个页面,接收数据代码:

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_monitor_detail);        //接收数据        Model model = (MonitorItem) getIntent().getSerializableExtra("monitorItem");    }

三. 实体类

public class MonitorItem extends WarnLog implements Serializable {    private static final long serialVersionUID = 7060210544600464481L;    private int imgTimeLine;    private int imgBottomLine;    private String warnTime;    //其他省略……get,set自动生成即可
问题分析:
  1. 出现字段为空的问题就出现在JAVABean中,大家看这个实体实现了Serializable接口,所以通过getSerializableExtra()方法是可以接收到数据的,也不会丢失。
  2. 但这个bean又继承于WarnLog这个父类Javabean,造成数据丢失,就是因为,父类javabean没有实现Serializable接口。所以父类也要实现序列化,才不会出现部分属性丢失问题。
  3. 实体类的父类,实现Serializable接口示例:
public class WarnLog implements Serializable   {    /** serialVersionUID */    private static final long serialVersionUID = 1L;    public String warnTypeName;    public String formatReTime;     //其他省略……get,set自动生成即可

四.总结

实体类JavaBean和它继承的父类同时实现Serializable接口,数据通过Intent.putExtra()传递,才不会出现,子类的属性数据传递成功,而父类的属性数据为null的情况。

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. Android(安卓)如何使用使用数据库
  3. Android(安卓)地址选择器仿京东;
  4. Android(安卓)listview适配器
  5. 在Android上使用微信开源数据库框架WCDB
  6. 【Android(安卓)基础】 序列化 Parcelable 使用
  7. 文件接收网络对讲机C#服务器 Android客户端(二) C#服务器代码分析
  8. Android中通过网络获取json数据来播放视频
  9. 初学了解MVC在android中的应用

随机推荐

  1. Android 删除 未接来电 通知
  2. Android播放音乐方法
  3. Android支持单词提示搜索框的网络请求策
  4. SlidingDrawer教程
  5. Android-Fresco系列6 图片解码
  6. android中如何获取视频时长
  7. Android(安卓)将类中的文字提取到String.
  8. Android提示框
  9. Android 监听耳机外放设备
  10. Android 裁剪图片