@Override protected Map<String, List> doInBackground(Void... params) { Map<String, List> result = new HashMap<>(); List<String> types = new ArrayList<>(); List<Float> percents = new ArrayList<>(); List<ChartItemModel> datas = new ArrayList<>(); // 所有记录总金额 totalAmount = DataSupport.sum(AccountModel.class, TableConstants.AMOUNT, float.class); // 查询类别、图标、类别总金额 Cursor cursor = DataSupport.findBySQL(QUERY_TYPES); if (cursor != null && cursor.moveToFirst()) { do { String type = cursor.getString(cursor.getColumnIndex(TableConstants.TYPE)); String iconImageName = cursor.getString(cursor.getColumnIndex(TableConstants.ICONIMAGENAME)); float sum = DataSupport.where(TableConstants.TYPE + " = ?", type) .sum(AccountModel.class, TableConstants.AMOUNT, float.class); types.add(type); percents.add(sum / totalAmount); ChartItemModel chartItemModel = new ChartItemModel(); chartItemModel.type = type; chartItemModel.percent = Utils.convertFloatToPercent(sum / totalAmount); chartItemModel.iconImageName = iconImageName; chartItemModel.sum = sum; datas.add(chartItemModel); } while (cursor.moveToNext()); cursor.close(); } result.put("types", types); result.put("percents", percents); result.put("datas", datas); return result; }