2016-01-19 1 views
1

В настоящее время я разрабатываю свое первое приложение для Android. Мне нужно визуализировать некоторые данные, и я выбрал MPAndroidChart v2.2.0 для этой цели (никакой особой причины вообще, она просто выглядела правильно).MPAndroidChart нет данных

Однако i'v создал LinedDataSet с 150 точками данных, а также 150 значений x, я объединил их в объекте LineData и установил это как данные для диаграммы. В основном я просто просмотрел документацию и выполнил шаги с моими собственными данными.

 mChart = (LineChart) myView.findViewById(R.id.chart); 
// create data 
     ArrayList<Entry> values = new ArrayList<Entry>(); 
     ArrayList<String> xVals = new ArrayList<String>(); 
     Iterator<PDSDataService.SampleProxyObject> sampleIT = sampleList.getSamplesList().iterator(); 

     while(sampleIT.hasNext()) 
     { 
      PDSDataService.SampleProxyObject sample = sampleIT.next(); 

      Entry smp = new Entry((float)sample.getRawValues(0).getValue(),(int)sample.getSampleID()); 

      values.add(smp); 
      xVals.add(String.valueOf(sample.getSampleID())); 

     } 


     LineDataSet setParam1 = new LineDataSet(values, mlistItem.toString()); 

     LineData data = new LineData(xVals,setParam1); 

     mChart.setData(data); 

     mChart.setAutoScaleMinMaxEnabled(true); 
     mChart.invalidate(); 

Теперь, когда я запустить приложение в А, Диаграмма показывает вверх (кстати, это во фрагменте, если это важно), то X и Y оси правильно масштабируются, но на графике, ничего не появляется, нет линии или чего-то еще.

Что я сделал не так? Я не смог протестировать приложение на реальном устройстве, возможно, этот вопрос связан с AVD?

+1

отправьте свой код, пожалуйста, может быть несколько причин. – Hughzi

+0

у этого есть пример, как добавить круговую диаграмму, http://stackoverflow.com/questions/34528848/listview-with-a-mpandroidchartor-whatever-below/34529166#34529166 –

+0

Привет, я обновил сообщение с большим количеством кода. Все это выполняется в onCreateView фрагмента –

ответ

0

Я видел, что этот вопрос остался без ответа, поэтому я попытался воспроизвести его сам.

Я в основном сделал именно то, что вы сделали, соберите Фрагмент и диаграмму, как вы. Единственное различие - мои данные. Я также создал 150 значений (просто чтобы проверить, слишком ли это или что-то еще), но просто использовал List<float> для удобства.

Мой код выглядит следующим образом:

LineChart mChart = (LineChart) v.findViewById(R.id.chart); 
    ArrayList<Entry> values = new ArrayList<Entry>(); 
    ArrayList<String> xVals = new ArrayList<String>(); 
    List<Float> list = new ArrayList<Float>(); 
    list.add(0.1f); .... until i have 150 values ... list.add(2.0f); 

    for (int i = 0; i < list.size(); i++) { 
     Entry smp = new Entry(list.get(i),i); 
     values.add(smp); 
     xVals.add(String.valueOf("Test "+i)); 
    } 

    LineDataSet setParam1 = new LineDataSet(values, "Anything"); 
    LineData data = new LineData(xVals,setParam1); 
    mChart.setData(data); 
    mChart.setAutoScaleMinMaxEnabled(true); 
    mChart.invalidate(); 

Для меня он работал в тренажере.

Simulator Screenshot

Вы уверены, что ваш Iterator и данные являются правильными?