Android 将数据库从资产加载到arraylist

Android 将数据库从资产加载到arraylist,android,sqlite,arraylist,Android,Sqlite,Arraylist,我的SQLite数据库大约有200~300行。我的表格有两列:\u id,Text 我想将整个表数据加载到ArrayList,这样我就可以使用函数通过\u id访问任何行 我的问题是,我不确定在我的主类或DatabaseHelper类中的何处创建ArrayList,如下面的链接所示 首先创建如下pojo类: public class Data { //private variables int _id; String _text; // Empty const

我的SQLite数据库大约有200~300行。我的表格有两列:
\u id
Text

我想将整个表数据加载到
ArrayList
,这样我就可以使用函数通过
\u id
访问任何行

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


首先创建如下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;
}
//获取所有数据
公共列表getAllData(){
List dataList=new ArrayList();
//选择所有查询
String selectQuery=“SELECT*FROM”+表格名称;
SQLiteDatabase db=this.getWritableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
//循环遍历所有行并添加到列表
if(cursor.moveToFirst()){
做{
数据=新数据();
setID(Integer.parseInt(cursor.getString(0));
data.setText(cursor.getString(1));
//向列表中添加数据
dataList.add(数据);
}while(cursor.moveToNext());
}
//返回数据列表
返回数据列表;
}

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

如果我将整个列表添加到arrlist,然后我可以通过_id?随机调用它,我只想在对话框的文本视图中显示列表中的一个随机文本。顺便问一下,我有一个问题:“String selectQuery=“SELECT*from”+TABLE\u NAME;”如果我的表名是android\u metada,我应该写String selectQuery=“SELECT*FROM+android\u metada”在ArrayList大小上使用Random()函数,结果将是您的(\u id)。String selectQuery=“SELECT*FROM android\u metada”使用此查询。我已经这样做了,现在我遇到了另一个问题,我尝试在对话框的listview中加载我的数据库(listview只是一个测试,看看是否加载了我的数据库)但是当我调用你提供给我的函数和方法时,它崩溃了。你介意看一下我的项目吗?如果我不能在明天之前解决数据库的问题,我想我会将我的解决方案改为在值中添加字符串,然后调用,然后在数组中添加它。