2015-11-04 3 views
0

У меня возникли проблемы с отображением результатов в активности поиска моего приложения. Интересно, где все пошло не так.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 - это просто пустая строка.

Я указываю тост, чтобы узнать, проходит ли код через все папки. И да, это так. Но я не знаю, почему он не отображает все результаты.

Любая помощь? Благодаря!

+0

@ FrankN.Stein О нет, я вставил неотредактированный код, но спасибо! Во всяком случае, я только что повторно разместил базовый код предложения. Тем не менее, он по-прежнему дает неправильные результаты. –

+0

Я не понимаю, почему вы возитесь с файлами? Не достаточно ли указать путь и имя базы данных? –

+0

@ FrankN.Stein Это файлы базы данных, содержащие таблицы. Например, у меня есть файл с именем «File1», он содержит такие таблицы, как 1) «Данные», содержащие столбцы «ObjectID», «Value» и «Property» 2) «Настройки», содержащие «Lock» и другие 3) другие таблицы. Поэтому я хочу искать в таблице «данные» каждого файла. –

ответ

0

Нашел ответ на разные должности. В принципе, вам нужно сначала использовать hashmap и arraylist, прежде чем настраивать адаптер напрямую.

Смежные вопросы