0

以下のように、接続を開き、SQLiteDatabaseをgetWritableDatabaseに初期化するMunchaDbAdapterがあります。

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がnullなので、誰もがそれについて言及できる問題は何ですか?

4

1 に答える 1

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

もちろん、あなたが持っているコードについて詳しく説明していただければ、私はあなたをより良く助けることができます.

于 2013-01-01T18:03:13.397 に答える