我正在尝试将sqlite表加载为arraylist,以便我可以使用其中的数据。我对sqlite查询不太确定,但我已经有了一个用来操作字符串的类,这是我更熟悉的。我可以加载一个单独的行,但我不知道如何将整个表作为一个arraylist。
我的主要方法
中有以下方法public void ShowCNData()
{
TestAdapter mDbHelper = new TestAdapter(this);
mDbHelper.createDatabase();
mDbHelper.open();
String allData = mDbHelper.getCYData().get(1)[1];
thing.setText(allData);
mDbHelper.close();
}
以及我的dbAdapter / Helper类中的以下方法
public ArrayList<String[]> getCYData()
{
ArrayList<String[]> CYData = new ArrayList<String[]>();
try
{
String sql ="SELECT * FROM cnYears ";
Cursor mCur = null;
do
{
mCur = mDb.rawQuery(sql, null);
CYData.add(new String[] {mCur.getString(0),mCur.getString(1),mCur.getString(2),mCur.getString(3),mCur.getString(4)});
}
while (mCur.moveToNext());
return CYData;
}
catch (SQLException mSQLException)
{
Log.e(TAG, "getTestData >>"+ mSQLException.toString());
throw mSQLException;
}
}
如何将数据加载到我的ArrayList中?
答案 0 :(得分:0)
如果没有实际的日志信息,我猜你的空游标时会出现NullPointerException。试试这种方式:
//initialize arraylist, execute query etc.
if (cursor.moveToFirst()) {
do {
String[] entry = new String[dataSize];
//pull your data here
data[0] = cursor.getInt(0);
data[1] = cursor.getString(1);
//...
list.add(entry);
} while (cursor.moveToNext());
}
// return arraylist