Чтение из базы данных в Android для ArrayList - PullRequest
4 голосов
/ 28 июля 2011

Я очень новичок в разработке для Android и не могу понять, как читать из моего database/table в arrayList.Прямо сейчас у меня есть:

      Cursor c = myDB.rawQuery("SELECT * FROM " + TableName , null);

       int Column1 = c.getColumnIndex("Field1");
       int Column2 = c.getColumnIndex("Field2");

       // Check if our result was valid.
       c.moveToFirst();
       if (c != null) {
        // Loop through all Results
        do {
         String Name = c.getString(Column1);
         int Age = c.getInt(Column2);
         Data =Data +Name+"/"+Age+"\n";
        }while(c.moveToNext());
       }
       TextView tv = new TextView(this);
       tv.setText(Data);
       setContentView(tv);
      }
      catch(Exception e) {
       Log.e("Error", "Error", e);
      } finally {
       if (myDB != null)
        myDB.close();
      }

Как мне прочитать это в arraylist?

Ответы [ 2 ]

7 голосов
/ 28 июля 2011

Вот код, который показывает вам, как получить ArrayList из запроса к базе данных.

public ArrayList<String> GetAllValues(String aTable,String[] aColumn)
{
    ArrayList<String> list = new ArrayList<String>();
    Cursor cursor = sqlDB.query(aTable, aColumn, null, null, null, null, null);
    if (cursor.moveToFirst())
    {
        do
        {
            list.add(cursor.getString(0));
        }
        while (cursor.moveToNext());
    }
    if (cursor != null && !cursor.isClosed()) 
    {
        cursor.close();
    }

    return list;
}

Если вы укажете null в «aColumn», он выдаст вам все столбцы. Я надеюсь, что это поможет.

5 голосов
/ 28 июля 2011
//ArrayList of Calllog class objects
ArrayList<CallLog> arrCallLogs = null;
Cursor curCalllog = myDB.rawQuery("SELECT * FROM " + TableName , null);

            if(curCalllog != null && curCalllog.moveToFirst()) {
            arrCallLogs = new ArrayList<CallLog>();
            while (curCalllog.isAfterLast() == false) {
                //Calllog is a class with list of fileds 
                CallLog callLog = new CallLog();
                callLog.setId(curCalllog.getLong(curCalllog.getColumnIndex(KEY_ROWID)));
                callLog.setName(curCalllog.getString(curCalllog.getColumnIndex(KEY_NAME)));
                callLog.setNumber(curCalllog.getString(curCalllog.getColumnIndex(KEY_NUMBER)));
                callLog.setNumberType(curCalllog.getInt(curCalllog.getColumnIndex(KEY_NUMBERTYPE)));
                callLog.setCallType(curCalllog.getInt(curCalllog.getColumnIndex(KEY_CALLTYPE)));
                callLog.setDatetime(curCalllog.getLong(curCalllog.getColumnIndex(KEY_DATETIME)));
                callLog.setDuration(curCalllog.getLong(curCalllog.getColumnIndex(KEY_DURATION)));
                callLog.set_new(curCalllog.getInt(curCalllog.getColumnIndex(KEY_NEW)));
                arrCallLogs.add(callLog);
                curCalllog.moveToNext();
            }
        }
        curCalllog.close();
    myDB.close();

Это пример того, как вы можете создать arrayList из Cursor.

Здесь есть имя класса Calllog, в котором есть список полей и методов установки и получения.Здесь я сделал ArrayList объектов Calllog, используя Cursor

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...