将数据库从资产加载到arraylist

时间:2017-03-20 12:28:25

标签: android sqlite arraylist

我的SQLite数据库大约有200~300行。我的表格有两列:_idText

我想将整个表格数据加载到ArrayList,这样我就可以使用函数_id访问任意一行。

我的问题是,我不确定在我的主类或我的DatabaseHelper类中创建ArrayList的位置 - 如下面的链接所示。

https://blog.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

1 个答案:

答案 0 :(得分:0)

首先创建一个像这样的pojo类:

public class Data {

    //private variables
    int _id;
    String _text;

    // Empty constructor
    public Data(){

    }
    // constructor
    public Data(int id, String text){
        this._id = id;
        this._text = text;
    }


    // getting ID
    public int getID(){
        return this._id;
    }

    // setting id
    public void setID(int id){
        this._id = id;
    }

    // getting text
    public String getText(){
        return this._text;
    }

    // setting text
    public void setText(String text){
        this._text = text;
    }

}

现在将以下方法添加到DBHelper类:

// Getting All data
 public List<Data> getAllData() {
    List<Data> dataList = new ArrayList<Data>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_NAME;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            Data data = new Data();
            data.setID(Integer.parseInt(cursor.getString(0)));
            data.setText(cursor.getString(1));
            // Adding data to list
            dataList.add(data);
        } while (cursor.moveToNext());
    }

    // return data list
    return dataList;
}

只需从主类调用此方法即可。您将获得列表中的所有数据,将列表添加到ArrayList并填充ListView。快乐的编码:)