以更快的方式从Android中的DB检索值

时间:2015-05-25 07:39:46

标签: android

我正在尝试从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条记录。当我执行上面的代码时,它会检索记录和每列并显示在日志中,但问题是它很慢。

是否有更好更快的方法来检索数据?

或者以上是最好的方法?

让我知道!

1 个答案:

答案 0 :(得分:1)

最好的方法是使用LoaderContentProvider

这是一个可以帮助你的教程, 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时,您可以使用选择参数来指定标记,日期,月份等。