Я пытаюсь найти базу данных SQLite, используя SearchView.На данный момент я могу искать только по одному слову.
например, "Здравствуйте, меня зовут Боб, у меня есть кот"
Если бы мне пришлось искать одно слово из текста выше ("Боб"), будет отображаться вся строка.
Однако я хотел бы, чтобы вышеуказанный текст также отображался при поиске "bob cat" или "my name have".Поскольку это возвращает пустой список.
Эти данные отображаются в виде списка.
private void searchUsers(SearchView searchDB) {
Cursor cursor = myDb.searchUsers(searchDB);
if (cursor.getCount() == 0) {
Toast.makeText(activity_symptcheck.this, "No data to show", Toast.LENGTH_SHORT).show();
} else {
while (cursor.moveToNext()) {
listItem.add("Illness: " + "\n" + cursor.getString(1) + "\n" + "Symptoms: " + "\n" + cursor.getString(2) + "\n" + "Treatments: " + "\n" + cursor.getString(3));
}
cursor.close();
myDb.close();
}
searchDB.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String searchTxt) {
return false;
}
@Override
public boolean onQueryTextChange(String searchTxt) {
ArrayList<String> userslist = new ArrayList<>();
for (String user : listItem) {
if (user.toLowerCase().contains(searchTxt.toLowerCase())) {
userslist.add(user);
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(activity_symptcheck.this,
android.R.layout.simple_list_item_1, userslist);
ListIllness.setAdapter(adapter);
return true;
}
});
}
public Cursor searchUsers(SearchView searchDB) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_NAME+" WHERE "+COL_3+" LIKE '%"+searchDB.getQuery()+"%'"+searchDB.getQuery(), null);
return cursor;
}