【发布时间】:2015-11-04 11:51:38
【问题描述】:
我无法在我的应用的搜索活动中显示结果。我想知道哪里出错了。
以下函数的目的是搜索用户的输入查询并在列出的每个文件中找到它。但结果只匹配一个数据,即使查询也存在于其他文件中。这是代码。
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、query、querysearch 和 namesOfFiles 其中 1) filelist 包含源文件夹中的文件列表 2) query 是他/她想要搜索的用户输入 3) querysearch 是 select 语句3) namesofFiles 只是一个空字符串。
我表示祝酒,看看代码是否遍历所有文件夹。是的。但我不知道为什么它没有显示所有结果。
有什么帮助吗?谢谢!
【问题讨论】:
-
@FrankN.Stein 哦,不,我粘贴了未经编辑的代码,但谢谢!无论如何,我刚刚重新发布了基本的选择语句代码。尽管如此,它仍然给出错误的结果。
-
我不明白你为什么要搞乱文件?提供数据库路径和名称还不够吗?
-
@FrankN.Stein 这些是包含表格的数据库文件。例如,我有一个名为“File1”的文件,它包含诸如 1)“Data”包含“ObjectID”、“Value”和“Property”列 2)“Settings”包含“Lock”等表 3)其他表。所以我想在每个文件的“数据”表中搜索。
-
对我来说这似乎有点矫枉过正......为什么不拥有一个包含多个表的数据库?
标签: sqlite listview search android-listview android-search