在Android中将数据插入SQLiteDatabase时出错

时间:2015-08-11 04:24:50

标签: android database sqlite

我初始化对象db并从我当前的类调用它的方法:

        db = new DBHelper(context);
        db.addCallerInfo(FragmentCaller.iName.getText().toString(),
                FragmentCaller.sex.getSelectedItemPosition(),
                FragmentCaller.iAddress.getText().toString(),
                FragmentCaller.iTel.getText().toString(),
                FragmentCaller.callerType.getSelectedItemPosition(),
                FragmentCaller.iSpecify.getText().toString());

在DBhelper类:

public void addCallerInfo(String name,int   sex ,String address,String  tel,int  callerType_id,String  specify) {
        ContentValues values = new ContentValues();
        values.put("name", name);
        values.put("sex", sex);
        values.put("address", address);
        values.put("tel", tel);
        values.put("specify", specify);
        values.put("callerType_id", callerType_id);
        db.insert(TableHelper.TABLE_callerInfo, null, values);
    }

然后它有问题java.lang.NullPointerException:

尝试在空对象引用

上调用虚方法long android.database.sqlite.SQLiteDatabase.insert(java.lang.String, java.lang.String, android.content.ContentValues)

请帮忙!感谢。

2 个答案:

答案 0 :(得分:1)

addCallerInfo()方法中添加以下行。然后,您可以将 contentValues 插入数据库。

   SQLiteDatabase db = this.getWritableDatabase();

答案 1 :(得分:-1)

您无法声明Database类型WritableReadable

首先按照inserting values声明它:

 SQLiteDatabase database = this.getWritableDatabase();

And For just Readable database

 SQLiteDatabase db = this.getReadableDatabase();