在MPAndroidChart中的活动之间传递数据集

在MPAndroidChart中的活动之间传递数据集,android,mpandroidchart,parcelable,Android,Mpandroidchart,Parcelable,我想在点击按钮后全屏显示条形图,但在活动之间传递BarEntry类时出错。 android.os.ParcelFormatException:无法将包含不可打包数据的条目打包 我的代码: ArrayList<BarEntry> barEntries = new ArrayList<>(); barEntries.clear(); barEntries.add(new BarEntry(0, new float[]{8f, 9f, 10f},

我想在点击按钮后全屏显示条形图,但在活动之间传递
BarEntry
类时出错。

android.os.ParcelFormatException:无法将包含不可打包数据的条目打包

我的代码:

ArrayList<BarEntry> barEntries = new ArrayList<>();
        barEntries.clear();
        barEntries.add(new BarEntry(0, new float[]{8f, 9f, 10f}, "Jan"));
        barEntries.add(new BarEntry(1, new float[]{11f, 9f, 5f}, "Feb"));
        barEntries.add(new BarEntry(2, new float[]{8f, 3f, 4f}, "Mar"));
        barEntries.add(new BarEntry(3, new float[]{5f, 14f, 2f}, "Apr"));
        barEntries.add(new BarEntry(4, new float[]{5f, 2f, 3f}, "May"));
        barEntries.add(new BarEntry(5, new float[]{2f, 15f, 6f}, "Jun"));
        barEntries.add(new BarEntry(6, new float[]{15f, 2f, 8f}, "Jul"));
        barEntries.add(new BarEntry(7, new float[]{4f, 19f, 4f}, "Aug"));
        barEntries.add(new BarEntry(8, new float[]{5f, 5f, 5f}, "Sept"));
        barEntries.add(new BarEntry(9, new float[]{6f, 6f, 6f}, "Oct"));
        barEntries.add(new BarEntry(10, new float[]{8f, 9f, 10f}, "Nov"));
        barEntries.add(new BarEntry(11, new float[]{2f, 7f, 7f}, "Dec"));
        barEntries.add(new BarEntry(12, new float[]{6f, 2f, 8f}, "Jan"));

Intent bar = new Intent(ChartRevenueActivity.this, FullscreenActivity.class);
                Bundle bundle = new Bundle();
                bundle.putSerializable("barEntries", barEntries);
                bar.putExtra("type", "barChart");
                bar.putExtras(bundle);
                startActivity(bar);
ArrayList barEntries=new ArrayList();
barEntries.clear();
添加(新的BarEntry(0,新的float[]{8f,9f,10f},“Jan”);
添加(新的BarEntry(1,新浮动[]{11f,9f,5f},“二月”);
添加(新的BarEntry(2,新浮动[]{8f,3f,4f},“Mar”);
添加(新的BarEntry(3,新浮动[]{5f,14f,2f},“Apr”);
添加(新的BarEntry(4,新浮动[]{5f,2f,3f},“五月”);
添加(新的BarEntry(5,新浮动[]{2f,15f,6f},“Jun”);
添加(新的BarEntry(6,新浮动[]{15f,2f,8f},“七月”);
添加(新的BarEntry(7,新浮动[]{4f,19f,4f},“8”);
添加(新的BarEntry(8,新浮动[]{5f,5f,5f},“9”);
添加(新的BarEntry(9,新浮动[]{6f,6f,6f},“十月”);
添加(新的BarEntry(10,新浮动[]{8f,9f,10f},“11”);
添加(新的BarEntry(11,新浮动[]{2f,7f,7f},“Dec”);
添加(新的BarEntry(12,新浮动[]{6f,2f,8f},“一月”);
意图栏=新意图(ChartRevenueActivity.this、FullscreenActivity.class);
Bundle=新Bundle();
bundle.putSerializable(“barEntries”,barEntries);
条形图(“类型”、“条形图”);
条状putExtras(束);
星触觉(bar);

将此库添加到build.gradle

compile 'com.google.code.gson:gson:2.8.1'
使用Gson将Arraylist转换为json,并将json字符串传递给新活动

Intent bar = new Intent(ChartRevenueActivity.this, FullscreenActivity.class);
    bar.putExtra("type", "barChart");
    bar.putExtra("barentry",new Gson().toJson(barEntries));
    startActivity(bar);
在新活动中检索Arraylist,如下所示

 ArrayList<BarEntry> barEntries = 
            new Gson().fromJson(getIntent().getStringExtra("barentry"), new TypeToken<ArrayList<BarEntry>>(){}.getType());
ArrayList barEntries=
新的Gson().fromJson(getIntent().getStringExtra(“barentry”),新的TypeToken(){}.getType());

您可以修改此BarEntry类别代码吗?@KoustuvGanguly不,我无法..在FullscreenActivity类别中创建此硬编码的条形图条目,或者创建包含条形图条目数据且可打包的数据模型。然后把它传递给任何你想要的活动。见下面我的答案。