我正在尝试从DB中检索值并在listView中显示它们。我创建了一个模型,通过类似下面的循环访问它:
数据库处理程序具有:
public ArrayList<Details> getDetails(int value)
{
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery = "SELECT * FROM " + TABLE__DETAILS_LOCAL + " ORDER BY " + "STRFTIME(" + KEY_FULL_DATE_LOCAL + ")" + " desc LIMIT " + value + ", 8";
Cursor cursor = db.rawQuery(selectQuery, null);
ArrayList<Details> datalist = new ArrayList<Details>();
if (cursor.moveToFirst())
{
Details valueID = null;
do
{
valueID = new Details(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(5), cursor.getString(6), cursor.getString(7), cursor.getString(8),
cursor.getString(9), cursor.getString(10), cursor.getString(11), cursor.getString(12), cursor.getString(13), cursor.getString(14));
datalist.add(valueID);
}
while (cursor.moveToNext());
cursor.close();
db.close();
}
return datalist;
}
要在java文件中访问它文件:
for (int i = 0; i < value; i++)
{
String Id = db.getDetails(count).get(i).getID();
String Type = db.getDetails(count).get(i).getType();
String TypeImage = db.getDetails(count).get(i).getTypeImage();
}
我在DB中有大约350条记录。当我执行上面的代码时,它会检索记录和每列并显示在日志中,但问题是它很慢。
是否有更好更快的方法来检索数据?
或者以上是最好的方法?
让我知道!
答案 0 :(得分:1)
最好的方法是使用Loader和ContentProvider。
这是一个可以帮助你的教程, http://www.vogella.com/articles/AndroidSQLite/article.html#todo
以下是其他2个好的教程 http://mobile.tutsplus.com/tutorials/android/android-sdk_content-providers/
http://mobile.tutsplus.com/tutorials/android/android-sdk_loading-data_cursorloader/
将数据加载到CursorLoader
时,您可以使用选择参数来指定标记,日期,月份等。