android开发操作数据库(插入数据到数据库)出现AndroidRuntime java.lang.NullPointerException

来源:互联网 发布:qt5编程入门 霍亚飞 编辑:程序博客网 时间:2024/09/21 08:19

FATAL EXCEPTION: main

AndroidRuntime java.lang.NullPointerException

at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221)

at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)

解决办法:

我在网上查询了很久都没有找到解决办法。

最后我发现是没有实例化对象。

在操作数据库类中,添加DbService的构造方法。

public class DbService implements  IDbService{


private Context context;


public DbService(Context context){
super();
this.context=context;
}

向数据库插入数据的方法insert:关键是这句实例化对象,接受activity类传过来的实例对象,DatabaseHelper dbhelper=new DatabaseHelper(this.context);

public long insert(String sex, String value) {
long row;
DataBaseDemo context=new DataBaseDemo();
DatabaseHelper dbhelper=new DatabaseHelper(this.context);
SQLiteDatabase db=dbhelper.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("sex", sex);
cv.put("name", value);
row=db.insert("person", null, cv);
db.close();

}

。。。。

}

前台Activity类

public class DataBaseDemo extends Activity {

//向数据库(增)添加数据的方法。( 关键有这个实例化传到DbService DbService dbs=new DbService(DataBaseDemo.this);)

private void add() {

 DbService dbs=new DbService(DataBaseDemo.this);
id=et_id.getText().toString();
name=et_name.getText().toString();

dbs.insert( id, name);

.......

....省略其他

}

其他类像下面这个就不多说

public class DatabaseHelper extends SQLiteOpenHelper{

}

0 0