在SQL中搜索会导致Exception Android

时间:2018-09-16 10:29:49

标签: android sqlite nullpointerexception searchview

因此,我将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 }}现在,我正在寻找一种避免该异常的方法,但我没有得到。我尝试了很多事情,但是没有一个例外。我不知道出现此问题的用户手机正在发生什么。还有更好的搜索方式吗?

期待解决方案。

0 个答案:

没有答案