package Ġcom . github . ek lipse 2 k 8 . catalog Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . charts . Line Chart Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . components . Y Axis . Axis Dependency Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . data . Entry Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . data . Line Data Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . data . Line DataSet Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . highlight . Highlight Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . listener . On Chart Value Selected Listener Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . utils . Color Template Ċ import Ġcom . github . ek lipse 2 k 8 . catalog . not important . Demo Base Ċ Ċ class ĠD ynam ical Adding Activity Ġ: ĠDemo Base (), ĠOn Chart Value Selected Listener Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġchart : ĠLine Chart ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ ĠsetContentView ( R . layout . activity _ line chart _ no seek bar ) ĊĠĠĠ Ġtitle Ġ= Ġ" D ynam ical Adding Activity " ĊĠĠĠ Ġchart Ġ= ĠfindViewById ( R . id . chart 1 ) ĊĠĠĠ Ġchart . setOn Chart Value Selected Listener ( this ) ĊĠĠĠ Ġchart . set Draw Grid Background ( false ) ĊĠĠĠ Ġchart . description . isEnabled Ġ= Ġfalse ĊĠĠĠ Ġchart . set No Data Text (" No Ġchart Ġdata Ġavailable . ĠUse Ġthe Ġmenu Ġto Ġadd Ġentries Ġand Ġdata Ġsets !") ĊĠĠĠ Ġchart . invalidate () ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġcolors Ġ= ĠColor Template . V OR DIP LO M _ COLORS ĊĠ Ġprivate Ġfun Ġadd Entry () Ġ{ ĊĠĠĠ Ġvar Ġdata Ġ= Ġchart . data ĊĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġdata Ġ= ĠLine Data () ĊĠĠĠĠĠ Ġchart . data Ġ= Ġdata ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġset Ġ= Ġdata . getData Set ByIndex ( 0 ) ĊĠĠĠ Ġ// Ġset . add Entry (... ); Ġ// Ġcan Ġbe Ġcalled Ġas Ġwell ĊĠĠĠ Ġif Ġ( set Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġset Ġ= Ġcreate Set () ĊĠĠĠĠĠ Ġdata . add DataSet ( set ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġchoose Ġa Ġrandom ĠdataSet ĊĠĠĠ Ġval Ġrandom DataSet Index Ġ= Ġ( Math . random () Ġ* Ġdata . data Set Count ). toInt () ĊĠĠĠ Ġval Ġrandom Set Ġ= Ġdata . getData Set ByIndex ( random DataSet Index ) ĊĠĠĠ Ġval Ġvalue Ġ= Ġ( Math . random () Ġ* Ġ 5 0 ). toFloat () Ġ+ Ġ 5 0 f Ġ* Ġ( random DataSet Index Ġ+ Ġ 1 ) ĊĠĠĠ Ġdata . add Entry ( Entry ( random Set !!. entry Count . toFloat (), Ġvalue ), Ġrandom DataSet Index ) ĊĠĠĠ Ġdata . notify Data Changed () ĊĊĠĠĠ Ġ// Ġlet Ġthe Ġchart Ġknow Ġit 's Ġdata Ġhas Ġchanged ĊĠĠĠ Ġchart . notify DataSet Changed () ĊĠĠĠ Ġchart . setVisible X Range Maximum ( 6 f ) ĊĠĠĠ Ġ// Ġchart . setVisible Y Range Maximum ( 1 5 , ĠAxis Dependency . LEFT ); ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthis Ġautomatically Ġref res hes Ġthe Ġchart Ġ( calls Ġinvalidate ()) ĊĠĠĠ Ġchart . move View To (( data . entry Count Ġ- Ġ 7 ). toFloat (), Ġ 5 0 f , ĠAxis Dependency . LEFT ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġremove Last Entry () Ġ{ ĊĠĠĠ Ġval Ġdata Ġ= Ġchart . data ĊĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġset Ġ= Ġdata . getData Set ByIndex ( 0 ) ĊĠĠĠĠĠ Ġif Ġ( set Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġset . getEntry For X Value (( set . entry Count Ġ- Ġ 1 ). toFloat (), ĠFloat . NaN ) ĊĠĠĠĠĠĠĠ Ġdata . remove Entry ( e !! , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ// Ġor Ġremove Ġby Ġindex ĊĠĠĠĠĠĠĠ Ġ// Ġm Data . remove Entry By X Value ( x Index , ĠdataSet Index ); ĊĠĠĠĠĠĠĠ Ġdata . notify Data Changed () ĊĠĠĠĠĠĠĠ Ġchart . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd DataSet () Ġ{ ĊĠĠĠ Ġval Ġdata Ġ= Ġchart . data ĊĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġchart . data Ġ= ĠLine Data () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġval Ġcount Ġ= Ġdata . data Set Count Ġ+ Ġ 1 ĊĠĠĠĠĠ Ġval Ġamount Ġ= Ġdata . getData Set ByIndex ( 0 ) !!. entry Count ĊĠĠĠĠĠ Ġval Ġvalues Ġ= ĠArrayList < Entry >() ĊĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġamount ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues . add ( Entry ( i . toFloat (), Ġ( Math . random () Ġ* Ġ 5 0 f ). toFloat () Ġ+ Ġ 5 0 f Ġ* Ġcount )) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġset Ġ= ĠLine DataSet ( values , Ġ" DataSet Ġ$ count ") ĊĠĠĠĠĠ Ġset . lineWidth Ġ= Ġ 2 . 5 f ĊĠĠĠĠĠ Ġset . circle Radius Ġ= Ġ 4 . 5 f ĊĠĠĠĠĠ Ġval Ġcolor Ġ= Ġcolors [ count Ġ% Ġcolors . size ] ĊĠĠĠĠĠ Ġset . color Ġ= Ġcolor ĊĠĠĠĠĠ Ġset . set Circle Color ( color ) ĊĠĠĠĠĠ Ġset . high Light Color Ġ= Ġcolor ĊĠĠĠĠĠ Ġset . value Text Size Ġ= Ġ 1 0 f ĊĠĠĠĠĠ Ġset . value TextColor Ġ= Ġcolor ĊĠĠĠĠĠ Ġdata . add DataSet ( set ) ĊĠĠĠĠĠ Ġdata . notify Data Changed () ĊĠĠĠĠĠ Ġchart . notify DataSet Changed () ĊĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġremove DataSet () Ġ{ ĊĠĠĠ Ġval Ġdata Ġ= Ġchart . data ĊĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġdata . remove DataSet ( data . getData Set ByIndex ( data . data Set Count Ġ- Ġ 1 ) !! ) ĊĠĠĠĠĠ Ġchart . notify DataSet Changed () ĊĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcreate Set (): ĠLine DataSet Ġ{ ĊĠĠĠ Ġval Ġset Ġ= ĠLine DataSet ( mutable ListOf (), Ġ" DataSet Ġ 1 ") ĊĠĠĠ Ġset . lineWidth Ġ= Ġ 2 . 5 f ĊĠĠĠ Ġset . circle Radius Ġ= Ġ 4 . 5 f ĊĠĠĠ Ġset . color Ġ= ĠColor . rgb ( 2 4 0 , Ġ 9 9 , Ġ 9 9 ) ĊĠĠĠ Ġset . set Circle Color ( Color . rgb ( 2 4 0 , Ġ 9 9 , Ġ 9 9 )) ĊĠĠĠ Ġset . high Light Color Ġ= ĠColor . rgb ( 1 9 0 , Ġ 1 9 0 , Ġ 1 9 0 ) ĊĠĠĠ Ġset . axis Dependency Ġ= ĠAxis Dependency . LEFT ĊĠĠĠ Ġset . value Text Size Ġ= Ġ 1 0 f ĊĠĠĠ Ġreturn Ġset ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Value Selected ( e : ĠEntry ?, Ġh : ĠHighlight ?) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġe . toString (), ĠToast . LENGTH _ SHORT ). show () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Nothing Selected () Ġ{} ĊĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠ Ġmenu Inflater . inflate ( R . menu . d ynam ical , Ġmenu ) ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠ ĠR . id . view Github Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠ Ġi . data Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// github . com / Phil J ay / MP Android Chart / blob / master / MP Chart Example / src / com / xx mass developer / mp chart example / D ynam ical Adding Activity . java ") ĊĠĠĠĠĠĠĠ ĠstartActivity ( i ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Add Entry Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Entry () ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Entry Ġadded !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Remove Entry Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Last Entry () ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Entry Ġremoved !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Add DataSet Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġadd DataSet () ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" DataSet Ġadded !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Remove DataSet Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġremove DataSet () ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" DataSet Ġremoved !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Clear Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . clear () ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Chart Ġcleared !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( this , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) Ġ== ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġsave To Gallery () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġrequest Storage Permission ( chart !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġsave To Gallery () Ġ{ ĊĠĠĠ Ġsave To Gallery ( chart !! , Ġ" D ynam ical Adding Activity ") ĊĠ Ġ} Ċ } Ċ