2017-01-30 2 views
0

Я использую SQLite с Android. Я сохраняю некоторые транзакции в таблице, называемой продажа. Я могу получить все элементы в таблице, как это.Как получить элементы в этом ArrayList и назначить их переменным?

public ArrayList<HashMap<String, Object>> getAllItems() { 
     ArrayList<HashMap<String, Object>> array_list = new ArrayList<>(); 

     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor res = db.rawQuery("SELECT * FROM " + SALE_TABLE_NAME, null); 
     res.moveToFirst(); 
     while (res.isAfterLast() == false) { 
      HashMap<String, Object> hashMap = new HashMap<>(); 
      hashMap.put(SALE_ITEM_ID, res.getInt(0)); 
      hashMap.put(SALE_ITEM_NAME, res.getString(1)); 
      hashMap.put(SALE_AMOUNT, res.getString(2)); 
      array_list.add(hashMap); 
      res.moveToNext(); 
     } 
     return array_list; 
    } 

public int getMaxId() { 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor res = db.rawQuery("SELECT MAX(id) FROM " + SALE_TABLE_NAME, null); 
     res.moveToFirst(); 
     return res.getInt(0); 
    } 

в классе деятельности, где я называю эту функцию, ее как этот dBHelper.getAllitems(). Я хочу, чтобы все элементы и идентификаторы были удалены из них, чтобы назначить их отдельным переменным. Как я могу это сделать?

ответ

0

Вы можете инициализировать свою БД в методе onCreate Activitiy, а затем написать вспомогательный класс, чтобы избежать кода плиты котла.

0

Один вы получаете ArrayList, вы можете перебирать через

for(HashMap m : arrayList){ 
int first = m.get(SALE_ITEM_ID); 
} 

Я не знаю, если это отвечает на ваш вопрос . также, когда вы итерацию курсор можно использовать moveToNext() в цикле в то время как как условие для его запуска

+0

Извините, вам может потребоваться бросить этот int. – manuel

Смежные вопросы