PhilJay / MPAndroidChart

A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.
Other
37.59k stars 9.02k forks source link

DataSet.java:286 java.lang.IndexOutOfBoundsException #4163

Open wixeless opened 6 years ago

wixeless commented 6 years ago

Fatal Exception: java.lang.IndexOutOfBoundsException Index: 0, Size: 0

java.util.ArrayList.get (ArrayList.java:411)

  | com.github.mikephil.charting.data.DataSet.getEntryForIndex (DataSet.java:286)   | com.github.mikephil.charting.utils.Transformer.generateTransformedValuesLine (Transformer.java:184)   | com.github.mikephil.charting.renderer.LineChartRenderer.drawValues (LineChartRenderer.java:547)   | com.github.mikephil.charting.charts.BarLineChartBase.onDraw (BarLineChartBase.java:264)   | android.view.View.draw (View.java:18398)   | android.view.View.updateDisplayListIfDirty (View.java:17376)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.draw (View.java:18401)   | android.view.View.updateDisplayListIfDirty (View.java:17376)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.draw (View.java:18401)   | android.support.v4.view.ViewPager.draw (ViewPager.java:2420)   | android.view.View.updateDisplayListIfDirty (View.java:17376)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.draw (View.java:18401)   | android.view.View.updateDisplayListIfDirty (View.java:17376)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.support.design.widget.CoordinatorLayout.drawChild (CoordinatorLayout.java:1254)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.draw (View.java:18401)   | android.view.View.updateDisplayListIfDirty (View.java:17376)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.updateDisplayListIfDirty (View.java:17371)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.updateDisplayListIfDirty (View.java:17371)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.updateDisplayListIfDirty (View.java:17371)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.updateDisplayListIfDirty (View.java:17371)   | android.view.View.draw (View.java:18160)   | android.view.ViewGroup.drawChild (ViewGroup.java:3968)   | android.view.ViewGroup.dispatchDraw (ViewGroup.java:3754)   | android.view.View.draw (View.java:18401)   | com.android.internal.policy.DecorView.draw (DecorView.java:967)   | android.view.View.updateDisplayListIfDirty (View.java:17376)   | android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:722)   | android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:728)   | android.view.ThreadedRenderer.draw (ThreadedRenderer.java:836)   | android.view.ViewRootImpl.draw (ViewRootImpl.java:3168)   | android.view.ViewRootImpl.performDraw (ViewRootImpl.java:2964)   | android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2552)   | android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1537)   | android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7183)   | android.view.Choreographer$CallbackRecord.run (Choreographer.java:959)   | android.view.Choreographer.doCallbacks (Choreographer.java:734)   | android.view.Choreographer.doFrame (Choreographer.java:670)   | android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:945)   | android.os.Handler.handleCallback (Handler.java:751)   | android.os.Handler.dispatchMessage (Handler.java:95)   | android.os.Looper.loop (Looper.java:154)   | android.app.ActivityThread.main (ActivityThread.java:6776)   | java.lang.reflect.Method.invoke (Method.java)   | com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518)   | com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)

Summys commented 6 years ago

same issue. it happens when you zoom in.

tahakhozooie commented 5 years ago

If you're using IAxisValueFormatter, just add this code inside that:

   IAxisValueFormatter formatter = new IAxisValueFormatter() {
                @Override
                public String getFormattedValue(float value, AxisBase axis) {
                    if (((int) value) < YOURLISTDATA.size()) {
                        return YOURLISTDATA.get((int) value);
                    } else {
                        return "0";
                    }

                }
            };