尝试在android </string []>中将sqlite表加载为ArrayList <string []>

时间:2013-09-15 17:32:17

标签: android sqlite arraylist

我正在尝试将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中?

1 个答案:

答案 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