У меня есть запрос ниже:
public List<ListCoursesFilterModel> getListSubject(List<String> lstLang) {
StringBuilder langs = new StringBuilder();
StringBuilder questionMark = new StringBuilder();
for (int i = 0; i < lstLang.size(); i++) {
langs.append(",").append(lstLang.get(i).toLowerCase());
questionMark.append(",?");
}
String res = langs.substring(1, langs.length());
String qs = questionMark.substring(1, questionMark.length());
List<ListCoursesFilterModel> list = new ArrayList<>();
SQLiteDatabase db = databaseHelper.getWritableDatabase();
Cursor cursor = db.query(
false,
"ShortMajorTBL",
null,
"langId IN(" + qs + ") AND identifier =?",
new String[]{res, "S300"},
null,
null,
null,
null
);
try {
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
ListCoursesFilterModel listCoursesFilterModel = new ListCoursesFilterModel();
listCoursesFilterModel.setSubject(cursor.getString(cursor.getColumnIndex("subject")));
listCoursesFilterModel.setLangId(cursor.getString(cursor.getColumnIndex("langId")));
listCoursesFilterModel.setIsSelected(cursor.getString(cursor.getColumnIndex("isSelected")));
listCoursesFilterModel.setIdentifier(cursor.getString(cursor.getColumnIndex("identifier")));
listCoursesFilterModel.setTitle(cursor.getString(cursor.getColumnIndex("title")));
listCoursesFilterModel.setCount(cursor.getInt(cursor.getColumnIndex("count")));
list.add(listCoursesFilterModel);
} while (cursor.moveToNext());
}
return list;
}
} catch (Exception ex) {
Throwable t = new Throwable(ex).fillInStackTrace();
FirebaseCrash.report(t);
} finally {
if (cursor != null) {
cursor.close();
}
}
return null;
}
lstLang
, когда у меня есть одно значение - например, en
- оно работает и получает результаты, но когда у меня несколько значений - например, en,fr,ar
- не показывает никакого результата.