首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从未调用过getWritableDatabase()

从未调用过getWritableDatabase()
EN

Stack Overflow用户
提问于 2016-09-17 12:06:06
回答 1查看 289关注 0票数 0

简单地说,这是我的课

代码语言:javascript
复制
public class sqlite extends SQLiteOpenHelper{
    public SQLiteDatabase db;
    public sqlite(Context context , String db_name , int db_version){
    super(context, db_name, null, db_version, null);
    try{this.db=getWritableDatabase();}catch(Exception e){this.db=getReadableDatabase();}
     }

当我调用新的sqlite(*****);时,函数getWritableDatabase()getReadableDatabase()总是会导致错误(空对象引用上的NullPointerException),那么,要成功地实现这些函数,必须调用的正确引用是什么?

Edit我找到了一个解决方案,但我仍然犹豫不决,为什么上面的代码不能工作?解决方案是将getWritableDatabase()从sqlite (扩展SQLiteOpenHelper)构造函数移到它自己的操作方法,即:在CRUD方法之前,如果从构造函数调用它,我不知道它为什么会失败

EN

回答 1

Stack Overflow用户

发布于 2016-09-17 13:01:47

您需要从构造函数中删除对getWritableDatabase的调用。相反,无论何时您想使用数据库助手,您都可以简单地调用sqlite类的实例(我强烈建议您将其重命名为有意义的东西--遵循适当的Java类命名约定)。

代码语言:javascript
复制
//Here is an example (using this from an Activity or some other class):
//pass appropriate values for the arguments...
sqlite myDatabaseHelper = new sqlite(context, db_name, db_version);
//here you can get the writable-database object
SQLiteDatabase sqlDB = myDatabaseHelper.getWritableDatabase();
//from here you can perform your database operations - like querying/inserting values, etc
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39546613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档