开发者社区> 问答> 正文

我用Bundle传递一个自定义实现了Serializable的Object 出错 求大神?报错

LOGCAT报错如下

 

 

 

大概流程是这样子的

我有这样的一个类

package com.example.DBUtil;

import java.io.Serializable;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class CourseDBHelper extends SQLiteOpenHelper implements Serializable{

 

 public CourseDBHelper(Context context, String name,int version) {
  super(context, name, null, version);
  // TODO Auto-generated constructor stub
 }

 @Override
 public void onCreate(SQLiteDatabase db) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // TODO Auto-generated method stub
  
 }

}

 

我在主activity初始化的时候建立这个类

//建立数据库  
  courseHelp = new CourseDBHelper(this, "curriculum.db3", 1);

然后在某个监听器里面这样写

add.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent(MainActivity.this,AddCourseAC.class);
    Bundle bundle = new Bundle();
    bundle.putSerializable("courseDBHelper", courseHelp);
    intent.putExtras(bundle);
    startActivity(intent);
    MainActivity.this.finish();
   }
  });

我百度了说要序列化过的object才能用BUNDLE传递 所以我如此这般地做

然后在另一个activity接收这个类

courseHelp = (CourseDBHelper) getIntent().getSerializableExtra("courseDBHelper");
  courseDB = courseHelp.getReadableDatabase();
  courseDBUtil = new DBUtil(courseDB);

百度了一下报错的意思  说什么那个类里面的那些自定义成员变量也要序列化 问题是 我那个类里面没有自定义的成员变量啊  究竟为什么呢  求大神

展开
收起
爱吃鱼的程序员 2020-06-22 17:03:45 413 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    序列化一般都是保存数据类之类的,你现在想保存逻辑类,然后反序列化再用这个类的函数,方法,这是不可行的,本身想法就有问题,你要在另一个activity再用这个类,只能自己重新实例化<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">SQLiteOpenHelper序列化了吗?<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">SQLiteOpenHelper的引用类型的Feilds(<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">不好意思我net过来的不知道java里叫啥,就是字段)序列化了么。最好检查一下。

    2020-06-22 17:04:00
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多