我有一个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.String, java.lang.String, java.lang.String[])' on a null object reference
答案 0 :(得分:1)
根据您的堆栈跟踪,您不会初始化SQLiteDatabase,因此在使用它时,会发生异常。见answer。它可以帮助您修改代码。
答案 1 :(得分:0)
如果来自sqlite的错误,您必须确保 whereClause 是正确的值
db.delete(table, whereClause, whereArgs);
并确保初始化数据库变量,在我的情况下
db = new DB(this);
db.open();