У меня есть следующая проблема. У меня есть два приложения fragment
со статическим arraylist
, который используется как в fragments
.Ошибка ArrayList, сбой приложений
вхождение ошибки может быть описана следующим образом:
- Добавить
entries
вarraylist
(Fragmenta) - кнопку Хит, дисплей
arraylist
на графике (Фрагмент B) - Вернуться к Фрагмент, добавить еще
entrie
кarraylist
- происходит> ошибка, приложение падает
Код фрагментов заключается в следующем:
фрагмента А
button.setOnClickListener(new View.OnClickListener() { public void onClick (View view) { if (editText3.getText().toString().matches("")) { Toast.makeText(getActivity(), "You did not enter a Valid Item ID", Toast.LENGTH_LONG).show(); return; } else if (editText2.getText().toString().matches("")) { Toast.makeText(getActivity(), "You did not enter a Valid Quantitiy", Toast.LENGTH_LONG).show(); return; } else { String nomen = (editText3.getText().toString()); float number = Float.parseFloat(editText2.getText().toString()); entries.add(new PieEntry(number, nomen)); editText3.setText(""); editText2.setText(""); editText3.requestFocus(); } } });
Фрагмент B
button2.setOnClickListener(new View.OnClickListener() { public void onClick (View view) { getResources().getColor(R.color.violp); getResources().getColor(R.color.bluep); getResources().getColor(R.color.redp); getResources().getColor(R.color.greenp); getResources().getColor(R.color.yellowp); getResources().getColor(R.color.orangep); getResources().getColor(R.color.lightbluep); getResources().getColor(R.color.purplep); getResources().getColor(R.color.darkredp); PieDataSet set = new PieDataSet(entries, ""); set.setColors(new int[]{R.color.bluep, R.color.greenp, R.color.violp, R.color.redp, R.color.yellowp, R.color.orangep, R.color.lightbluep, R.color.purplep, R.color.darkredp}, getActivity()); PieData datax = new PieData(set); piechart.setData(datax); Toast.makeText(getActivity(), (R.string.loading), Toast.LENGTH_SHORT).show(); piechart.setNoDataText(String.valueOf(R.string.nodata)); piechart.notifyDataSetChanged(); piechart.animateX(2000, Easing.EasingOption.EaseInExpo); piechart.animateY(2000, Easing.EasingOption.EaseInExpo); } });
ОШИБКА И. М. ПОЛУЧЕНИЕ ЭТО:
java.lang.ArrayIndexOutOfBoundsException: длина = 1; index = 1
Если бы некоторые опытные эксперты могли мне помочь, я был бы очень благодарен. Спасибо.
UPDATE: ОШИБКА СТЕК ВКЛЮЧЕНО
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.nextpietwo, PID: 2528
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.github.mikephil.charting.renderer.PieChartRenderer.drawDataSet(PieChartRenderer.java:244)
at com.github.mikephil.charting.renderer.PieChartRenderer.drawData(PieChartRenderer.java:147)
at com.github.mikephil.charting.charts.PieChart.onDraw(PieChart.java:126)
at android.view.View.draw(View.java:17185)
at android.view.View.updateDisplayListIfDirty(View.java:16167)
at android.view.View.draw(View.java:16951)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16162)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
at android.view.View.updateDisplayListIfDirty(View.java:16130)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
at android.view.View.updateDisplayListIfDirty(View.java:16130)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
at android.view.View.updateDisplayListIfDirty(View.java:16130)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
at android.view.View.updateDisplayListIfDirty(View.java:16130)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
at android.view.View.updateDisplayListIfDirty(View.java:16130)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
at android.view.View.updateDisplayListIfDirty(View.java:16130)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
at android.view.View.updateDisplayListIfDirty(View.java:16130)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:648)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:654)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:762)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2800)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2608)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:621)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Пожалуйста, включите Ошибка стека, как это трудно, чтобы выяснить, какая линия бросает исключение. – user2004685
сделано :) надеюсь, что это поможет –
Что такое 'entries'? Где и как это было определено? – user2004685