Android 将数据库从资产加载到arraylist
我的SQLite数据库大约有200~300行。我的表格有两列: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
\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只是一个测试,看看是否加载了我的数据库)但是当我调用你提供给我的函数和方法时,它崩溃了。你介意看一下我的项目吗?如果我不能在明天之前解决数据库的问题,我想我会将我的解决方案改为在值中添加字符串,然后调用,然后在数组中添加它。