zoukankan      html  css  js  c++  java
  • Activity 之间 传递 List 封装的对象或者对象


          项目中遇到 从也个页面向还有一个页面跳转传递一个List 封装的对象 。按网上查的资料 须要把 对象 实现 Serializable接口。
    写了一下。可是跳转直接崩溃。一直看错误之日找不到原因后来自习教案代码,发现bean里面还有其它bean。对象里的对象没有 进行序列化。记录分享一下。

    代码例如以下:

    两个Bean 文件

    import java.io.Serializable;
    import java.util.List;
    
    /**
    
     * ${JHS}
     */
    
    public class KnowledgeClassifyChildBean implements Serializable {
    
            /**
             * 知识点ID  *
             */
            public String knowledgeId;
            /**
             * 知识点名称
             */
            public String knowledgeName;
            /**
             * 知识点题数
             */
            public int Sum;
            public boolean isSelect = false;
    
    }
    

    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
    
     * ${JHS}
     */
    
    public class KnowledgeClassifyBean implements Serializable {
    
        /*
                    {
                        "knowledgeId": 387,//知识点ID
                        "knowledgeName": "认识立体几何图形",//知识点名称
                        "Sum":15 //知识点题数
            */
        private static final long serialVersionUID = 1L;
    
        /**
         * 章节ID  *
         */
        public String chapterId;
        /**
         * 章节名称
         */
        public String chapterName;
        public boolean isSelect = false;
       <span style="background-color: rgb(255, 0, 0);"> public List<KnowledgeClassifyChildBean> knowledgeList = new ArrayList<KnowledgeClassifyChildBean>();</span>
    
    }
    

    Activity 之间传 List<KnowledgeClassifyBean >

     

    KnowledgeClassifyBean mKnowledgeClassifyBean ;

     List<KnowledgeClassifyBean>   knowledgeClassifyBeanList = new ArrayList<KnowledgeClassifyBean>();

     for (int i = 0; i < 6; i++) {
          mKnowledgeClassifyBean      = new KnowledgeClassifyBean();
                mKnowledgeClassifyBean.chapterName = "章节名称  " + i + i;
                for (int j = 0; j < 6; j++) {
                    KnowledgeClassifyChildBean mKnowledgeList = new KnowledgeClassifyChildBean();
                    mKnowledgeList.knowledgeName = " 名称  " + j;
                    mKnowledgeClassifyBean.knowledgeList.add(mKnowledgeList);
                }
                knowledgeClassifyBeanList.add(mKnowledgeClassifyBean);
            }

     Intent intent = new Intent(A.this, B.class);
                    if (knowledgeClassifyBeanList != null) {
                        intent.putExtra("knowledgeClassifyBeanList", (Serializable) knowledgeClassifyBeanList);
                        startActivity(intent);
                    }



    B这边 Activity  接收

      Intent intent = getIntent();
            List<KnowledgeClassifyBean> knowledgeClassifyBeanList  = (  List<KnowledgeClassifyBean>) intent.getSerializableExtra("knowledgeClassifyBeanList");
            Log.i("-----knowledge--" ,knowledgeClassifyBeanList.size() + "");

     Activity 之间传递对象也是实现  Serializable 接口

    KnowledgeClassifyBean   knowledgeClassifyBean = new KnowledgeClassifyBean();

    intent.putExtra("knowledgeClassifyBean ", knowledgeClassifyBean );  


    接收的Activity

     Intent intent = getIntent();  
    KnowledgeClassifyBean   knowledgeClassifyBean 

    KnowledgeClassifyBean )intent.getSerializableExtra("knowledgeClassifyBean "); 



  • 相关阅读:
    文件处理(记录经典代码及相关逻辑)
    python与pip在widow下cmd命令行操作问题收集:python、pip不是内部或外部命令,也不是可运行程序
    python—函数中存在的部分问题
    python —匿名函数(lambda)
    Python—递归函数
    python-函数参数
    python代码运行过程
    String类练习
    String类的常用方法
    死锁与进程通信
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6956541.html
Copyright © 2011-2022 走看看