2016-08-17 123 views
-3

我有使用BarData的问题。我的代码显示错误:ArrayList <String>无法转换为IBarDataSet

BarData Data = new BarData(Date,depenses); 

我只想在每个小节下显示日期。

我的代码..

public class statistique extends AppCompatActivity { 

BarChart barChart; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_statistique); 


    barChart = (BarChart)findViewById(R.id.stats_chart); 

    ArrayList<BarEntry> entries = new ArrayList<>(); 
    entries.add(new BarEntry(4f, 0)); 
    entries.add(new BarEntry(8f, 1)); 
    entries.add(new BarEntry(6f, 2)); 
    entries.add(new BarEntry(12f, 3)); 
    entries.add(new BarEntry(18f, 4)); 
    entries.add(new BarEntry(9f, 5)); 


    BarDataSet depenses = new BarDataSet(entries, "depenses"); 

    ArrayList<String> Date = new ArrayList<>(); 
    Date.add("2/7/2016"); 
    Date.add("3/7/2016"); 
    Date.add("5/7/2016"); 
    Date.add("6/7/2016"); 
    Date.add("23/7/2016"); 
    Date.add("30/7/2016"); 


    BarData Data = new BarData(Date,depenses); 
    barChart.setData(Data); 

    barChart.setTouchEnabled(true); 
    barChart.setDragEnabled(true); 
    barChart.setScaleEnabled(true); 
    barChart.animateXY(3000, 3000); 
    barChart.setHorizontalScrollBarEnabled(true); 
    barChart.setDoubleTapToZoomEnabled(true); 
    barChart.setDescription("Dépenses"); 
    depenses.setColors(ColorTemplate.COLORFUL_COLORS); 



} 
} 

回答

1

哪个库的版本是您使用。新的v3.0的工作原理略有不同。如果您使用任何v2版本,以下内容将起作用。这个错误是误导你需要将你的数据集转换为IBarData集,并且它需要成为我相信的列表。

这应该适合你。

ArrayList<IBarDataSet> dataSets = new ArrayList<>(); 
dataSets.add((IBarDataSet) depenses); 
BarData Data = new BarData(Date, dataSets); 

如果您使用的是新版本3库,则需要对XAxis进行不同的设置。在这种情况下,您只需要通过

ArrayList<IBarDataSet> dataSets = new ArrayList<>(); 
dataSets.add((IBarDataSet) depenses); 
BarData Data = new BarData(dataSets); 

然后您需要设置您的XAxis。

IAxisValueFormatter formatter = new IAxisValueFormatter() { 

     @Override 
     public String getFormattedValue(float value, AxisBase axis) { 
      return Date.get((int)value); 
     } 

     // we don't draw numbers, so no decimal digits needed 
     @Override 
     public int getDecimalDigits() { return 0; } 
    }; 

XAxis xAxis = barChart.getXAxis(); 
xAxis.setGranularity(1f); // minimum axis-step (interval) is 1 
xAxis.setValueFormatter(formatter); 
0

你可以做这样的事情:

barChart = (BarChart)findViewById(R.id.stats_chart); 

    ArrayList<BarEntry> entries = new ArrayList<>(); 
    entries.add(new BarEntry(4f, 0)); 
    entries.add(new BarEntry(8f, 1)); 
    entries.add(new BarEntry(6f, 2)); 
    entries.add(new BarEntry(12f, 3)); 
    entries.add(new BarEntry(18f, 4)); 
    entries.add(new BarEntry(9f, 5)); 




    ArrayList<String> Date = new ArrayList<>(); 
    Date.add("2/7/2016"); 
    Date.add("3/7/2016"); 
    Date.add("5/7/2016"); 
    Date.add("6/7/2016"); 
    Date.add("23/7/2016"); 
    Date.add("30/7/2016"); 



    barChart.setTouchEnabled(true); 
    barChart.setDragEnabled(true); 
    barChart.setScaleEnabled(true); 
    barChart.animateXY(3000, 3000); 
    barChart.setHorizontalScrollBarEnabled(true); 
    barChart.setDoubleTapToZoomEnabled(true); 
    barChart.setDescription("Dépenses"); 
    depenses.setColors(ColorTemplate.COLORFUL_COLORS); 
    ArrayList<IBarDataSet> dataSets = null; 

    BarDataSet barDataSet1 = new BarDataSet(entries "your title"); 
    dataSets=new ArrayList<>(); 
dataSets.add(barDataSet) 

BarData Data = new BarData(Date,barDataSet1); 
    barChart.setData(Data); 
+0

同样的问题BarData只能有一个参数 –

+0

张贴logcat的消息 –

+0

错误:(151,24)错误:构造BarData类BarData不能被应用到给定的类型; 必需:IBarDataSet [] found:ArrayList ,BarDataSet reason:varargs mismatch; varargs mismatch; ArrayList 无法转换为IBarDataSet –

相关问题