这是我的助手方法:
public Boolean isQuestionFavorite(String rawQuestionid) {
SQLiteDatabase database = null;
Cursor c = null;
try {
c = database.rawQuery("SELECT question_id FROM tbl_questions WHERE question_id = ' " + rawQuestionid + " ' ", null);
Log.i("CURSOR VALUE ",c.toString());
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (database != null && database.isOpen()) {
database.close();
}
}
if (c != null) {
if (c.moveToFirst()) {
return true;
}
}
return false;
}
这是我传递给这个辅助方法的值。这是在
Recycler onBindViewHolder
:
///========================== FAVORITE CHECKING ========================
boolean isFavorite = questionDatabaseAdapter.isQuestionFavorite(questionha.get(position).getQuestionId());
Log.i("STRING QUESTION ID",String.valueOf(questionha.get(position).getQuestionId()));
Log.i("BOOLEAN FAVORITE",String.valueOf(isFavorite));
if(isFavorite){
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_red_700_24dp);
}else {
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_border_red_a700_24dp);
}
当我调试代码时,执行database.rawQuery
时会出现此异常:
java.lang.NullPointerException:尝试调用虚方法 “android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String中, 对象引用
上的java.lang.String [])'