2016-08-17 2 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

сообщения The LogCat сообщение –

+0

Ошибка: (151, 24) Ошибка: Конструктор BarData в классе BarData не может быть применен к данным видам; required: IBarDataSet [] найдено: ArrayList , BarDataSet Причина: varargs несоответствие; ArrayList не может быть преобразован в IBarDataSet –

Смежные вопросы