Поэтому я добавил 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();
}
}
В настоящее время я добавил попытку и ловлю, чтобы избежать исключения NullPointerException, но мое приложение находится в магазине воспроизведения и в последний разЗа 72 часа он получил более 30 сбоев из-за NullPointerExcpetion на линии codeAdapter.notifyDataSetChanged();
Теперь я ищу способ избежать этого исключения, но я его не получаю.Я пробовал много вещей, но ни одна из них не дала мне этого исключения.Я не знаю, что происходит в телефоне пользователя, который вызывает эту проблему.Также есть ли лучший способ поиска?
С нетерпением ждем решения.