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{
}