因此,我将SearchView添加到了我的应用程序中,每当发生搜索时,函数就会在SQLite中找到匹配的数据并更新RecyclerView。
这是代码:
searchQuestion.setOnQueryTextListener(new
SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
searchQuestion(s);
return false;
}
@Override
public boolean onQueryTextChange(String s) {
searchQuestion(s);
return false;
}
});
和searchQuestion(String):
public void searchQuestion(String s)
{
codes.clear();
String sql;
if (isDisplayingAllPrograms)
sql = "SELECT * FROM " + contentTitle + "_data WHERE question LIKE '%" + s + "%' OR tag LIKE '%" + s + "%'";
else
sql = "SELECT * FROM " + contentTitle + "_data WHERE tag='" + currentTag + "' AND (question LIKE '%" + s + "%' OR tag LIKE '%" + s + "%')";
Cursor c = sqLiteDatabase.rawQuery(sql, null);
int codeID = c.getColumnIndex("code");
int questionID = c.getColumnIndex("question");
int idID = c.getColumnIndex("uid");
int tagID = c.getColumnIndex("tag");
while (c.moveToNext()) {
codes.add(new spaDataModelClass(c.getString(questionID), c.getString(codeID), c.getString(idID), c.getString(tagID)));
}
c.close();
if (codes!=null) {
codeAdapter.notifyDataSetChanged();
}
}
现在我暂时添加了一个try- catch以避免NullPointerException,但我的应用程序已在Play商店中上线,并且在过去的72小时内,由于NullPointerExcpetion行{{1 }}现在,我正在寻找一种避免该异常的方法,但我没有得到。我尝试了很多事情,但是没有一个例外。我不知道出现此问题的用户手机正在发生什么。还有更好的搜索方式吗?
期待解决方案。