|
3 | 3 |
|
4 | 4 | import android.graphics.Color;
|
5 | 5 | import android.os.Bundle;
|
| 6 | +import android.util.Log; |
6 | 7 | import android.view.Menu;
|
7 | 8 | import android.view.MenuItem;
|
8 | 9 | import android.view.WindowManager;
|
@@ -34,107 +35,115 @@ protected void onCreate(Bundle savedInstanceState) {
|
34 | 35 | mChart.setDrawYValues(false);
|
35 | 36 | mChart.setDrawGridBackground(false);
|
36 | 37 | mChart.setDescription("");
|
| 38 | + |
| 39 | + addEmptyData(); |
37 | 40 |
|
38 |
| - // create 30 x-vals |
39 |
| - String[] xVals = new String[30]; |
40 |
| - |
41 |
| - for (int i = 0; i < 30; i++) |
42 |
| - xVals[i] = "" + i; |
43 |
| - |
44 |
| - // create 10 y-vals |
45 |
| - ArrayList<Entry> yVals = new ArrayList<Entry>(); |
46 |
| - |
47 |
| - for (int i = 0; i < 10; i++) |
48 |
| - yVals.add(new Entry((float) (Math.random() * 50) + 50f, i)); |
49 |
| - |
50 |
| - LineDataSet set = new LineDataSet(yVals, "DataSet 1"); |
51 |
| - set.setLineWidth(2.5f); |
52 |
| - set.setCircleSize(4.5f); |
53 |
| - set.setColor(Color.rgb(240, 99, 99)); |
54 |
| - set.setCircleColor(Color.rgb(240, 99, 99)); |
55 |
| - set.setHighLightColor(Color.rgb(190, 190, 190)); |
56 |
| - |
57 |
| - LineData data = new LineData(xVals, set); |
58 |
| - |
59 |
| - mChart.setData(data); |
60 | 41 | mChart.invalidate();
|
61 | 42 | }
|
62 |
| - |
63 |
| - int[] mColors = ColorTemplate.VORDIPLOM_COLORS; |
| 43 | + |
| 44 | + int[] mColors = ColorTemplate.VORDIPLOM_COLORS; |
64 | 45 |
|
65 | 46 | private void addEntry() {
|
66 |
| - |
67 |
| - LineData data = mChart.getDataOriginal(); |
68 | 47 |
|
69 |
| - LineDataSet set = data.getDataSetByIndex(0); |
70 |
| - // set.addEntry(...); |
| 48 | + LineData data = mChart.getDataOriginal(); |
71 | 49 |
|
72 |
| - if(set != null) { |
73 |
| - |
| 50 | + if(data != null) { |
| 51 | + |
| 52 | + LineDataSet set = data.getDataSetByIndex(0); |
| 53 | + // set.addEntry(...); |
| 54 | + |
| 55 | + if (set == null) { |
| 56 | + set = createSet(); |
| 57 | + data.addDataSet(set); |
| 58 | + } |
| 59 | + |
74 | 60 | data.addEntry(new Entry((float) (Math.random() * 50) + 50f, set.getEntryCount()), 0);
|
75 | 61 |
|
76 | 62 | // let the chart know it's data has changed
|
77 | 63 | mChart.notifyDataSetChanged();
|
78 | 64 |
|
79 | 65 | // redraw the chart
|
80 |
| - mChart.invalidate(); |
| 66 | + mChart.invalidate(); |
81 | 67 | }
|
82 | 68 | }
|
83 | 69 |
|
84 | 70 | private void removeLastEntry() {
|
85 |
| - |
86 |
| - LineData data = mChart.getDataOriginal(); |
87 | 71 |
|
88 |
| - LineDataSet set = data.getDataSetByIndex(0); |
| 72 | + LineData data = mChart.getDataOriginal(); |
89 | 73 |
|
90 |
| - if(set != null) { |
| 74 | + if(data != null) { |
| 75 | + |
| 76 | + LineDataSet set = data.getDataSetByIndex(0); |
91 | 77 |
|
92 |
| - Entry e = set.getEntryForXIndex(set.getEntryCount() - 1); |
| 78 | + if (set != null) { |
93 | 79 |
|
94 |
| - data.removeEntry(e, 0); |
95 |
| - // or remove by index |
96 |
| - // mData.removeEntry(xIndex, dataSetIndex); |
| 80 | + Entry e = set.getEntryForXIndex(set.getEntryCount() - 1); |
97 | 81 |
|
98 |
| - mChart.notifyDataSetChanged(); |
99 |
| - mChart.invalidate(); |
| 82 | + data.removeEntry(e, 0); |
| 83 | + // or remove by index |
| 84 | + // mData.removeEntry(xIndex, dataSetIndex); |
| 85 | + |
| 86 | + mChart.notifyDataSetChanged(); |
| 87 | + mChart.invalidate(); |
| 88 | + } |
100 | 89 | }
|
101 | 90 | }
|
102 | 91 |
|
103 | 92 | private void addDataSet() {
|
104 |
| - |
| 93 | + |
105 | 94 | LineData data = mChart.getDataOriginal();
|
106 | 95 |
|
107 |
| - int count = (data.getDataSetCount() + 1); |
| 96 | + if(data != null) { |
108 | 97 |
|
109 |
| - // create 10 y-vals |
110 |
| - ArrayList<Entry> yVals = new ArrayList<Entry>(); |
| 98 | + int count = (data.getDataSetCount() + 1); |
111 | 99 |
|
112 |
| - for (int i = 0; i < data.getXValCount(); i++) |
113 |
| - yVals.add(new Entry((float) (Math.random() * 50f) + 50f * count, i)); |
114 |
| - |
| 100 | + // create 10 y-vals |
| 101 | + ArrayList<Entry> yVals = new ArrayList<Entry>(); |
115 | 102 |
|
116 |
| - LineDataSet set = new LineDataSet(yVals, "DataSet " + count); |
117 |
| - set.setLineWidth(2.5f); |
118 |
| - set.setCircleSize(4.5f); |
119 |
| - |
120 |
| - int color = mColors[count % mColors.length]; |
121 |
| - |
122 |
| - set.setColor(color); |
123 |
| - set.setCircleColor(color); |
124 |
| - set.setHighLightColor(color); |
| 103 | + for (int i = 0; i < data.getXValCount(); i++) |
| 104 | + yVals.add(new Entry((float) (Math.random() * 50f) + 50f * count, i)); |
125 | 105 |
|
126 |
| - data.addDataSet(set); |
127 |
| - mChart.notifyDataSetChanged(); |
128 |
| - mChart.invalidate(); |
| 106 | + LineDataSet set = new LineDataSet(yVals, "DataSet " + count); |
| 107 | + set.setLineWidth(2.5f); |
| 108 | + set.setCircleSize(4.5f); |
| 109 | + |
| 110 | + int color = mColors[count % mColors.length]; |
| 111 | + |
| 112 | + set.setColor(color); |
| 113 | + set.setCircleColor(color); |
| 114 | + set.setHighLightColor(color); |
| 115 | + |
| 116 | + data.addDataSet(set); |
| 117 | + mChart.notifyDataSetChanged(); |
| 118 | + mChart.invalidate(); |
| 119 | + } |
129 | 120 | }
|
130 | 121 |
|
131 | 122 | private void removeDataSet() {
|
132 |
| - |
| 123 | + |
133 | 124 | LineData data = mChart.getDataOriginal();
|
| 125 | + |
| 126 | + if(data != null) { |
134 | 127 |
|
135 |
| - data.removeDataSet(data.getDataSetByIndex(data.getDataSetCount() - 1)); |
| 128 | + data.removeDataSet(data.getDataSetByIndex(data.getDataSetCount() - 1)); |
| 129 | + |
| 130 | + mChart.notifyDataSetChanged(); |
| 131 | + mChart.invalidate(); |
| 132 | + } |
| 133 | + } |
| 134 | + |
| 135 | + private void addEmptyData() { |
136 | 136 |
|
137 |
| - mChart.notifyDataSetChanged(); |
| 137 | + // create 30 x-vals |
| 138 | + String[] xVals = new String[30]; |
| 139 | + |
| 140 | + for (int i = 0; i < 30; i++) |
| 141 | + xVals[i] = "" + i; |
| 142 | + |
| 143 | + // create a chartdata object that contains only the x-axis labels (no entries or datasets) |
| 144 | + LineData data = new LineData(xVals); |
| 145 | + |
| 146 | + mChart.setData(data); |
138 | 147 | mChart.invalidate();
|
139 | 148 | }
|
140 | 149 |
|
@@ -174,8 +183,28 @@ public boolean onOptionsItemSelected(MenuItem item) {
|
174 | 183 | removeDataSet();
|
175 | 184 | Toast.makeText(this, "DataSet removed!", Toast.LENGTH_SHORT).show();
|
176 | 185 | break;
|
| 186 | + case R.id.actionAddEmptyLineData: |
| 187 | + addEmptyData(); |
| 188 | + Toast.makeText(this, "Empty data added!", Toast.LENGTH_SHORT).show(); |
| 189 | + break; |
| 190 | + case R.id.actionClear: |
| 191 | + mChart.clear(); |
| 192 | + Toast.makeText(this, "Chart cleared!", Toast.LENGTH_SHORT).show(); |
| 193 | + break; |
177 | 194 | }
|
178 | 195 |
|
179 | 196 | return true;
|
180 | 197 | }
|
| 198 | + |
| 199 | + private LineDataSet createSet() { |
| 200 | + |
| 201 | + LineDataSet set = new LineDataSet(null, "DataSet 1"); |
| 202 | + set.setLineWidth(2.5f); |
| 203 | + set.setCircleSize(4.5f); |
| 204 | + set.setColor(Color.rgb(240, 99, 99)); |
| 205 | + set.setCircleColor(Color.rgb(240, 99, 99)); |
| 206 | + set.setHighLightColor(Color.rgb(190, 190, 190)); |
| 207 | + |
| 208 | + return set; |
| 209 | + } |
181 | 210 | }
|
0 commit comments