我的第一个应用。我正在其中实现搜索功能。
到目前为止我已经这样做了。
数据库部分:
String sqlStr = "SELECT Book_Name, PlainEng_Text, PlainArab_Text, REF, Had_Number, Book_Number, Collection_ID FROM Had_Table WHERE Collection_ID = 1 AND ID IN " +
"(SELECT ID FROM Had_Virtual_Table WHERE Hadith_Virtual_Table MATCH ?)";
//String[] selectionArgs = { QueryString };
curHadlist = dbHandle.rawQuery(sqlStr, QueryString);
通过快速返回记录似乎工作正常。 在我的一次测试中,它返回了7100多条记录。
我认为以下代码会导致问题:
while (curHadlist.moveToNext()) {
curHTags.moveToFirst();
String HTags = curHTags.getString(0);
String BookN = curHadlist.getString(0);
if (activityID == 2) {
AB.setSubtitle(BookN);
}
String EngH = curHadlist.getString(1);
String ArH = curHadlist.getString(2);
String RefH = curHadlist.getString(3);
String HadNum = curHadlist.getString(4);
Integer BookNum = curHadlist.getInt(5);
Integer CollectNum = curHadlist.getInt(6);
hadlist = hadlist + String.format(HTags, HadNum, activityID, BookNum, CollectNum, EngH, ArH, RefH); //2=ID of this activity
}
在这个循环之后,我返回hadlist
,然后像这样使用它:
webViewF.loadDataWithBaseURL("file:///android_asset/", hadlist , "text/html", "UTF-8", null);
问题:我的应用程序在输入搜索字符串(一个返回7100多条记录并且喜欢它的字符串)之后变黑,并且永远不会回来(等待几分钟)。
任何人都可以建议更好的方式来做我想在这里实现的目标。
谢谢。