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

Just-the-CJ 发布于 2013/09/02 21:39
阅读 926
收藏 0

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);

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

加载中
0
_________0
_________0
序列化一般都是保存数据类之类的,你现在想保存逻辑类,然后反序列化再用这个类的函数,方法,这是不可行的,本身想法就有问题,你要在另一个activity再用这个类,只能自己重新实例化
0
sharpcx
sharpcx
SQLiteOpenHelper序列化了吗?SQLiteOpenHelper的引用类型的Feilds(不好意思我net过来的不知道java里叫啥,就是字段)序列化了么。最好检查一下。
返回顶部
顶部