使用android中另一个类的sqlitedatabase变量

时间:2013-01-01 11:45:46

标签: android sqlite

我有一个MunchaDbAdapter打开连接并将SQLiteDatabase初始化为getWritableDatabase,如下所示:

public MunchaDbAdapter open() throws SQLException {
    mDbHelper = new MunchDbHelper(mCtx);
    mDb = mDbHelper.getWritableDatabase();
    return this;
}

现在在另一个班级我打开了像这样的MunchaDbAdapter

private MunchaDbAdapter mDbHelper;
private SQLiteDatabase mDb;

public long insert(Recipient recipient, String[] images){
        ContentValues initialValues = new ContentValues();
        initialValues.put(FLD_RECIPIENT_ID, Recipient.getFldRecipientId());
        initialValues.put(FLD_INFO, Recipient.getFldInfo());
        initialValues.put(FLD_LATITUDE, Recipient.getFldLatitude());
        initialValues.put(FLD_LONGITUDE, Recipient.getFldLongitude());
        for(int i=0;i<images.length;i++){
            if(images[i]!=null){
                initialValues.put("FLD_IMAGE_URL"+(i+1), images[i]);
            }
        }

        mDbHelper.open();
        return mDb.insert(DATABASE_TABLE, null, initialValues);
    }

这是我的错误,mDb为空,那么问题是什么,任何机构都可以提到它?

1 个答案:

答案 0 :(得分:0)

我可以从代码中获得的是,您正在尝试这样做:

第1课:

public SQLiteDatabase open() throws SQLException {
    MunchDbHelper mDbHelper = new MunchDbHelper(mCtx);
    SQLiteDatabase mDb = mDbHelper.getWritableDatabase();
    return mDb;
}

第2课:

private MunchaDbAdapter mDbHelper;
private SQLiteDatabase mDb;

public long insert(Recipient recipient, String[] images){
        ContentValues initialValues = new ContentValues();
        initialValues.put(FLD_RECIPIENT_ID, Recipient.getFldRecipientId());
        initialValues.put(FLD_INFO, Recipient.getFldInfo());
        initialValues.put(FLD_LATITUDE, Recipient.getFldLatitude());
        initialValues.put(FLD_LONGITUDE, Recipient.getFldLongitude());
        for(int i=0;i<images.length;i++){
            if(images[i]!=null){
                initialValues.put("FLD_IMAGE_URL"+(i+1), images[i]);
            }
        }
        mDbHelper = new MunchDbHelper(getApplicationCOntext());
        mDb = mDbHelper.open();
        return mDb.insert(DATABASE_TABLE, null, initialValues);
    }

当然,如果你详细说明你的代码我可以帮助你更好。