Поиск в SQL дает исключение Android - PullRequest
0 голосов
/ 16 сентября 2018

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

С нетерпением ждем решения.

...