99import android .widget .Toast ;
1010
1111import com .github .mikephil .charting .charts .LineChart ;
12- import com .github .mikephil .charting .data .DataSet ;
12+ import com .github .mikephil .charting .data .BarEntry ;
1313import com .github .mikephil .charting .data .Entry ;
1414import com .github .mikephil .charting .data .LineData ;
1515import com .github .mikephil .charting .data .LineDataSet ;
1616import com .github .mikephil .charting .interfaces .OnChartValueSelectedListener ;
17+ import com .github .mikephil .charting .utils .ColorTemplate ;
1718import com .xxmassdeveloper .mpchartexample .notimportant .DemoBase ;
1819
1920import java .util .ArrayList ;
@@ -46,7 +47,7 @@ protected void onCreate(Bundle savedInstanceState) {
4647 ArrayList <Entry > yVals = new ArrayList <Entry >();
4748
4849 for (int i = 0 ; i < 10 ; i ++)
49- yVals .add (new Entry ((float ) (Math .random () * 100 ) + 50f , i ));
50+ yVals .add (new Entry ((float ) (Math .random () * 50 ) + 50f , i ));
5051
5152 LineDataSet set = new LineDataSet (yVals , "DataSet 1" );
5253 set .setLineWidth (2.5f );
@@ -60,15 +61,20 @@ protected void onCreate(Bundle savedInstanceState) {
6061 mChart .setData (mData );
6162 mChart .invalidate ();
6263 }
64+
65+ int [] mColors = ColorTemplate .VORDIPLOM_COLORS ;
6366
6467 private void addEntry () {
6568
6669 LineDataSet set = mData .getDataSetByIndex (0 );
67- // set.addEntry();
70+ // set.addEntry(... );
6871
69- mData .addEntry (new Entry ((float ) (Math .random () * 100 ) + 500f , set .getEntryCount ()), 0 );
72+ mData .addEntry (new Entry ((float ) (Math .random () * 50 ) + 50f , set .getEntryCount ()), 0 );
7073
74+ // let the chart know it's data has changed
7175 mChart .notifyDataSetChanged ();
76+
77+ // redraw the chart
7278 mChart .invalidate ();
7379 }
7480
@@ -79,11 +85,48 @@ private void removeLastEntry() {
7985 Entry e = set .getEntryForXIndex (set .getEntryCount () - 1 );
8086
8187 mData .removeEntry (e , 0 );
88+ // or remove by index
89+ // mData.removeEntry(xIndex, dataSetIndex);
8290
8391 mChart .notifyDataSetChanged ();
8492 mChart .invalidate ();
8593 }
8694
95+ private void addDataSet () {
96+
97+ int count = (mData .getDataSetCount () + 1 );
98+
99+ // create 10 y-vals
100+ ArrayList <Entry > yVals = new ArrayList <Entry >();
101+
102+ for (int i = 0 ; i < mData .getXValCount (); i ++)
103+ yVals .add (new Entry ((float ) (Math .random () * 50f ) + 50f * count , i ));
104+
105+
106+ LineDataSet set = new LineDataSet (yVals , "DataSet " + count );
107+ set .setLineWidth (2.5f );
108+ set .setCircleSize (4.5f );
109+
110+ int color = getResources ().getColor (mColors [count % mColors .length ]);
111+
112+ set .setColor (color );
113+ set .setCircleColor (color );
114+ set .setHighLightColor (color );
115+
116+ mData .addDataSet (set );
117+
118+ mChart .notifyDataSetChanged ();
119+ mChart .invalidate ();
120+ }
121+
122+ private void removeDataSet () {
123+
124+ mData .removeDataSet (mData .getDataSetByIndex (mData .getDataSetCount () - 1 ));
125+
126+ mChart .notifyDataSetChanged ();
127+ mChart .invalidate ();
128+ }
129+
87130 @ Override
88131 public void onValueSelected (Entry e , int dataSetIndex ) {
89132 Toast .makeText (this , e .toString (), Toast .LENGTH_SHORT ).show ();
@@ -112,6 +155,14 @@ public boolean onOptionsItemSelected(MenuItem item) {
112155 removeLastEntry ();
113156 Toast .makeText (this , "Entry removed!" , Toast .LENGTH_SHORT ).show ();
114157 break ;
158+ case R .id .actionAddDataSet :
159+ addDataSet ();
160+ Toast .makeText (this , "DataSet added!" , Toast .LENGTH_SHORT ).show ();
161+ break ;
162+ case R .id .actionRemoveDataSet :
163+ removeDataSet ();
164+ Toast .makeText (this , "DataSet removed!" , Toast .LENGTH_SHORT ).show ();
165+ break ;
115166 }
116167
117168 return true ;
0 commit comments