如何获取此ArrayList中的项并将它们分配给变量?

时间:2017-01-30 16:27:41

标签: android sql android-sqlite

我在Android上使用SQLite。我在一个名为sale的表中保存了一些事务。我可以像这样得到表格中的所有项目。

 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);
    }

在我调用此函数的activity类中,就像这个dBHelper.getAllitems()一样。我希望能够从中获取所有项目和ID,将它们分配给独立变量。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以在Activitiy的onCreate方法中初始化数据库,然后编写一个帮助程序类以避免样板代码。

答案 1 :(得分:0)

你得到了arraylist,你可以通过

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

我不知道这是否回答了你的问题. 也可以在迭代游标时使用while循环中的moveToNext()作为运行条件