2015-11-04 154 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()函數傳遞的文件列表,查詢,querysearch和namesOfFiles其中,1)文件列表包含在源文件夾中的文件列表2)查詢是他/她想要的用戶輸入搜索3)querysearch是select語句3)namesofFiles只是一個空字符串。

我指出一個敬酒,看看代碼遍歷所有的文件夾。是的。但我不知道爲什麼它沒有顯示所有的結果。

任何幫助?謝謝!

+0

@ FrankN.Stein哦不,我粘貼未經編輯的代碼,但謝謝!無論如何,我剛剛重新發布了基本的select語句代碼。儘管如此,它仍然給出了錯誤的結果。 –

+0

我不明白你爲什麼搞亂文件?給數據庫路徑和名稱還不夠嗎? –

+0

@ FrankN.Stein這些是包含這些表的數據庫文件。例如,我有一個名爲「File1」的文件,它包含諸如1)包含列「ObjectID」,「Value」和「Property」的「Data」2)包含「Lock」等的「Settings」3)其他表格。所以我想在每個文件的「數據」表中搜索。 –

回答

0

在不同的職位上找到答案。基本上,你只需要在設置適配器之前先使用hashmap和arraylist。