在android活动中使用数据库

时间:2012-11-17 19:49:31

标签: android sqlite onclick oncreate

我正在学习如何在Android活动中使用sql数据库。我正在学习this tutorial。我有一个活动,我在教程中使用数据库处理程序。 我在activity类中声明了变量。

DatabaseHandler db;

在oncreate方法中,我创建了一个新的DatabaseHandler对象:

DatabaseHandler db = new DatabaseHandler(this);

我想在点击按钮后使用数据库。所以我在onClick方法中使用连接,但是我得到一个空指针异常,除非我在onclick中创建一个新对象。为什么这样,对于不同类型的对象,我可以像在本例中那样声明变量。

DatabaseHandler的构造函数是:

 public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

super是SQLiteOpenHelper。

1 个答案:

答案 0 :(得分:1)

您正在获取null异常,因为您实例化不正确。你声明你的数据库是一个字段,然后实例化一个不同的对象DatabaseHandler db = new DatabaseHandler(this);< - 作为一个局部变量。因此,您的onClick只能访问未实例化的字段。修复你需要在你的oncreate中替换你拥有的东西。

db = new DatabaseHandler(this);

或者如果onClick在onCreate中,则应用最终修饰符。 (并删除字段对象)