У меня возникли проблемы с отображением результатов в активности поиска моего приложения. Интересно, где все пошло не так.SQLIte не отображает все результаты правильно в ListView
Целью нижеприведенной функции является поиск входного запроса пользователя и поиск его в каждом списке файлов. Но результаты соответствуют только одному событию, хотя запрос также присутствует в других файлах. Вот код.
public void searchFiles(File[] filelist, String query, String querysearch, String[] namesOfFiles){
querysearch = "SELECT * FROM Data WHERE ObjectID = ? ";
int temp2 = filelist.length;
for (int i = (temp2-1); i >= 0; i--) {
if(!(filelist[i].getName().equals("DataObjectDB.db")) && !(filelist[i].getName().endsWith("-journal"))){
temp1 = filelist[i].getName();
namesOfFiles[i] = temp1.replaceAll(".db$", "");
Toast.makeText(getApplicationContext(),"Searching " + query + " in: " + namesOfFiles[i], Toast.LENGTH_SHORT).show();
DatabaseHelper db1 = new DatabaseHelper(getApplicationContext(),namesOfFiles[i]);
SQLiteDatabase sqldb = db1.getWritableDatabase();
cursor = sqldb.rawQuery(querysearch, new String[]{query});
Toast.makeText(getApplicationContext(),cursor.toString(), Toast.LENGTH_SHORT).show();
}
}
final ListView listView = (ListView) findViewById(R.id.results_listview);
SearchAdapter adapter = new SearchAdapter(this, R.layout.results_column, cursor,0);
listView.setAdapter(adapter);
}
В searchFiles() функция передает FileList, запрос, querysearch и namesOfFiles, где 1) список файлов содержит список файлов в исходной папке 2) запрос на вход пользователя он/она хочет искать 3) querysearch - оператор select 3) namesofFiles - это просто пустая строка.
Я указываю тост, чтобы узнать, проходит ли код через все папки. И да, это так. Но я не знаю, почему он не отображает все результаты.
Любая помощь? Благодаря!
@ FrankN.Stein О нет, я вставил неотредактированный код, но спасибо! Во всяком случае, я только что повторно разместил базовый код предложения. Тем не менее, он по-прежнему дает неправильные результаты. –
Я не понимаю, почему вы возитесь с файлами? Не достаточно ли указать путь и имя базы данных? –
@ FrankN.Stein Это файлы базы данных, содержащие таблицы. Например, у меня есть файл с именем «File1», он содержит такие таблицы, как 1) «Данные», содержащие столбцы «ObjectID», «Value» и «Property» 2) «Настройки», содержащие «Lock» и другие 3) другие таблицы. Поэтому я хочу искать в таблице «данные» каждого файла. –