代码之家  ›  专栏  ›  技术社区  ›  lakshman

如何在android中将MPCharts的String转换为Bar条目

  •  1
  • lakshman  · 技术社区  · 8 年前

    在我的android应用程序中,我不熟悉图形和使用 MPchart库 绘制图表。我在X轴和Y轴上使用字符串数组显示图形。

    对于x轴,我成功创建了它,但对于Y轴,我需要转换 ArrayList<String> BarData 数组列表。我不知道如何转换它。有人能告诉我如何做到这一点吗?

    对于X轴:

    private ArrayList<String> getXAxis() {
                ArrayList<String> xAxis = new ArrayList<>();
                xAxis = new ArrayList<String>(Arrays.asList(bar_graph_names)); //converting string to arraylist
                return xAxis;
            }
    

    对于Y轴绘图值:

    private ArrayList<BarDataSet> getData() {
            ArrayList<String> yAxis_conv = new ArrayList<>();
            yAxis_conv = new ArrayList<String>(Arrays.asList(bar_graph_values));
    
            ArrayList<BarDataSet> yAxis_Datasets=null;
            ArrayList<BarEntry> yAxis = new ArrayList<>();
    
            for(int i = 0; i < bar_graph_values.length; i++)
            {
                BarEntry [] barentry = new BarEntry[bar_graph_values.length];
                barentry[i] = new BarEntry(Float.valueOf(yAxis_conv.get(i)),i);
            }           
    
            BarDataSet barDataSet1 = new BarDataSet(yAxis_conv , "");//Error occurring line
            barDataSet1.setColors(ColorTemplate.COLORFUL_COLORS);
            yAxis_Datasets = new ArrayList<>();
            yAxis_Datasets.add(barDataSet1);
            return yAxis_Datasets;
        }
    
    1 回复  |  直到 6 年前
        1
  •  5
  •   InTwoMinds    8 年前

    BarData 对象(给图表的 View )由一个 List 表示x值和一个或多个 BarDataSet 表示y值数据的对象。 条形数据集 对象具有 String 姓名和 列表 y值。

    您对这些对象的结构完全错误。(对于起动机 yAxis_conv List<String> 哪里 条形数据集 要求 List<BarEntry> ). 还有更多的错误,但我不想指出它们,只需要在下面提供一些工作代码:

    private void setData() {
        ArrayList<String> xVals = new ArrayList<String>();
        ArrayList<BarEntry> yVals = new ArrayList<BarEntry>();
    
        xVals = new ArrayList<String>(Arrays.asList(bar_graph_names));
        for(int i=0; i < bar_graph_values.length; i++) {
            BarEntry entry = new BarEntry(Float.valueOf(bar_graph_values[i]), i);
            yVals.add(entry);
        }
        BarDataSet newSet = new BarDataSet(yVals, "DataSet");
        BarData data = new BarData(xVals, newSet);
        mChart.setData(data);
    }