使用 float 创建一个累积数组
Create a cumulative array with float
我需要获取一系列负浮点值和正浮点值的累加值并放入 MPAndroidChart 条目:
private ArrayList<Entry> chartValues;
public void getTransactions() {
(...)
for (int i = 0; i < info.length(); i++) {
JSONObject objInfo = info.getJSONObject(i);
(...)
int transaction_type = objInfo.getInt("transaction_type");
float transaction_amount;
if(transaction_type == 0){
transaction_amount = -(float) objInfo.getDouble("transaction_amount");
}else{
transaction_amount = (float) objInfo.getDouble("transaction_amount");
}
chartValues.add(new Entry(i, transaction_amount));
}
(...)
}
private void setData(int count, float range) {
LineDataSet set1;
if (chart.getData() != null &&
chart.getData().getDataSetCount() > 0) {
set1 = (LineDataSet) chart.getData().getDataSetByIndex(0);
set1.setValues(chartValues);
chart.getData().notifyDataChanged();
chart.notifyDataSetChanged();
} else {
(...)
}
chartValues
returns {1.00, 2.00, -3.00, 4.00, 5.00 ...} 我需要 return {1.00, 3.00, 0.00, 4.00, 9.00 }.任何的想法?谢谢!
您似乎需要额外的变量来保持项目的总和:
public void getTransactions() {
(...)
float sum = 0.0f;
for (int i = 0; i < info.length(); i++) {
JSONObject objInfo = info.getJSONObject(i);
...
并使用它:
sum += transaction_amount;
chartValues.add(new Entry(i, sum));
}
(...)
}
我需要获取一系列负浮点值和正浮点值的累加值并放入 MPAndroidChart 条目:
private ArrayList<Entry> chartValues;
public void getTransactions() {
(...)
for (int i = 0; i < info.length(); i++) {
JSONObject objInfo = info.getJSONObject(i);
(...)
int transaction_type = objInfo.getInt("transaction_type");
float transaction_amount;
if(transaction_type == 0){
transaction_amount = -(float) objInfo.getDouble("transaction_amount");
}else{
transaction_amount = (float) objInfo.getDouble("transaction_amount");
}
chartValues.add(new Entry(i, transaction_amount));
}
(...)
}
private void setData(int count, float range) {
LineDataSet set1;
if (chart.getData() != null &&
chart.getData().getDataSetCount() > 0) {
set1 = (LineDataSet) chart.getData().getDataSetByIndex(0);
set1.setValues(chartValues);
chart.getData().notifyDataChanged();
chart.notifyDataSetChanged();
} else {
(...)
}
chartValues
returns {1.00, 2.00, -3.00, 4.00, 5.00 ...} 我需要 return {1.00, 3.00, 0.00, 4.00, 9.00 }.任何的想法?谢谢!
您似乎需要额外的变量来保持项目的总和:
public void getTransactions() {
(...)
float sum = 0.0f;
for (int i = 0; i < info.length(); i++) {
JSONObject objInfo = info.getJSONObject(i);
...
并使用它:
sum += transaction_amount;
chartValues.add(new Entry(i, sum));
}
(...)
}