sqlite删除行由onItemLongClick gridview sqlite

时间:2016-09-04 13:35:59

标签: android sqlite gridview nullpointerexception

我有一个gridview从sqlite数据库获取数据,我想通过onItemLongClick删除一行,但我得到一个错误,我无法解决它

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
                               int position, long id)
{
    dataBase.delete(mDBHelper.TABLE_LIENS, mDBHelper.toString()
                                           + "="
                                           + mLienList.get(position), null);

    mLienList.remove(position);
    adapter.notifyDataSetChanged();
    Toast.makeText(Main2ActivityAdmin.this, "Lien supprimer", Toast.LENGTH_LONG).show();

    return true;
}

堆栈跟踪是:

E/AndroidRuntime: FATAL EXCEPTION: main Process: PID: 21230 java.lang.NullPointerException: Attempt to invoke virtual method 'int android.database.sqlite.SQLiteDatabase.delete(java.lang.Stri‌​ng, java.lang.String, java.lang.String[])' on a null object reference

2 个答案:

答案 0 :(得分:1)

根据您的堆栈跟踪,您不会初始化SQLiteDatabase,因此在使用它时,会发生异常。见answer。它可以帮助您修改代码。

答案 1 :(得分:0)

如果来自sqlite的错误,您必须确保 whereClause 是正确的值

db.delete(table, whereClause, whereArgs);

并确保初始化数据库变量,在我的情况下

db = new DB(this);
db.open();