Closed layogm closed 8 years ago
I initialised inside the fragment as:
<com.numetriclabz.numandroidcharts.HeatMap android:id="@+id/heatMap" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="12dp"/>
then java file : `
heatMap = (HeatMap) root.findViewById(R.id.heatMap);
setHeatMap(); is being called after network operation
private void setHeatMap() {
List<ChartData> values = new ArrayList<ChartData>();
values.add(new ChartData("One", "First", 10));
values.add(new ChartData("One", "Sec", 11));
values.add(new ChartData("One", "Third", 20));
values.add(new ChartData("One", "Fourth", 30));
values.add(new ChartData("Two", "First", 9));
values.add(new ChartData("Two", "Sec", 14));
values.add(new ChartData("Two", "Third", 20));
values.add(new ChartData("Two", "Fourth", 23));
values.add(new ChartData("Three", "First", 45));
values.add(new ChartData("Three", "Sec", 23));
values.add(new ChartData("Three", "Third", 43));
values.add(new ChartData("Three", "Fourth", 5));
values.add(new ChartData("Four", "First", 12));
values.add(new ChartData("Four", "Sec", 32));
values.add(new ChartData("Four", "Third", 10));
values.add(new ChartData("Four", "Fourth", 8));
JSONArray limits = new JSONArray();
try {
JSONObject limit1 = new JSONObject();
limit1.put("minvalue", 0 + "");
limit1.put("maxvalue", 10 + "");
limit1.put("colorcode", "#C7E3EF");
limit1.put("label", "Poor");
JSONObject limit2 = new JSONObject();
limit2.put("minvalue", 10 + "");
limit2.put("maxvalue", 25 + "");
limit2.put("colorcode", "#87C8EE");
limit2.put("label", "Average");
JSONObject limit3 = new JSONObject();
limit3.put("minvalue", 25 + "");
limit3.put("maxvalue", 50 + "");
limit3.put("colorcode", "#4091C9");
limit3.put("label", "Excellent");
limits.put(limit1);
limits.put(limit2);
limits.put(limit3);
}
catch (Exception e){
e.printStackTrace();
}
heatMap.setLimits(limits);
List<ChartData> columns = new ArrayList();
columns.add(new ChartData("First"));
columns.add(new ChartData("Sec"));
columns.add(new ChartData("Third"));
columns.add(new ChartData("Fourth"));
List<ChartData> rows = new ArrayList();
rows.add(new ChartData("One"));
rows.add(new ChartData("Two"));
rows.add(new ChartData("Three"));
rows.add(new ChartData("Four"));
heatMap.setColumns(columns);
heatMap.setRows(rows);
heatMap.setDataSet(values);
}
`
this issue can be closed. it's already fixed
The problem comes because the columns list is null initially and it is being called in the view. I think this issue could be solved by simply initialising rows, columns and data fields with 0 size arraylists.