如何在BarChart Android中按件显示数据

时间:2016-09-28 12:16:00

标签: android charts android-design-library

我在使用BarChart时遇到问题..我的列表中有7个项目。例如

final int[] a = {5,2,10,4,7,8,13};
final String[] b= {"January","February","March","April","May","June","Jully"};

所以我想在Barchart上展示作品。例如,前5个项目显示,当我单击按钮时,剩余2个项目显示在条形图中。图像是, enter image description here

当我点击" WAFAW"按钮条形图是,

enter image description here

但我的代码是,

enter image description here

所以这意味着不要显示吧......我怎么能这样做?谢谢你......

我的代码是,

final BarChart barChart = (BarChart) findViewById(R.id.chart);
Button button = (Button) findViewById(R.id.button);


final int[] a = {5,2,10,4,7,8,13};
final String[] b= {"January","February","March","April","May","June","Jully"};
final ArrayList<BarEntry> entries = new ArrayList<>();
final ArrayList<String> labels = new ArrayList<String>();

for(int i=0 ; i<5;i++){
    entries.add(new BarEntry(a[i],i));
    labels.add(b[i]);
}
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        entries.clear();
        labels.clear();

        for(int i=5; i<a.length;i++){
            entries.add(new BarEntry(a[i],i));
            labels.add(b[i]);
        }
        BarDataSet dataset = new BarDataSet(entries, "# of Calls");
        barChart.getXAxis().setPosition(XAxis.XAxisPosition.TOP);
        BarData data = new BarData(labels, dataset);
        dataset.setColors(ColorTemplate.COLORFUL_COLORS);
        barChart.setData(data);
        barChart.animateY(3000);
    }
});

BarDataSet dataset = new BarDataSet(entries, "# of Calls");

barChart.getXAxis().setPosition(XAxis.XAxisPosition.TOP);

BarData data = new BarData(labels, dataset);
dataset.setColors(ColorTemplate.COLORFUL_COLORS);
barChart.setData(data);

barChart.animateY(3000);

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

据我所知,没有简单的解决方案可以选择显示哪些条形图。这取决于你想要/需要解决它的动态程度。

我能想到的最好的解决方案就是将一系列条形图显示出来:

final int[] show_arr = {0,1,2,3,4,5};

当调用onClick()时,您将数组更改为

final int[] show_arr = {5,7};

然后再次完成整个绘图程序。 但是您通过show_arr

循环添加条目

我知道这不是一个超级好的解决方案,但至少你只需要对矢量进行编码,并且可以重复使用所有其他部分。