2016-08-17 59 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 –

相關問題