2016-04-22 4 views
-1

Я использую библиотеку MP Chart. Моя проблема заключается в том, что значение не устанавливается в соответствующий бар. Я извлекаю значения из JSON и помещаю его в значения y гистограммы. enter image description hereГоризонтальная полоса не установлена ​​текстовое значение для соответствующих баров

Число 1,2,3 не установлено.

Вот код:

mChart = (HorizontalBarChart) findViewById(R.id.chart1); 
mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() { 
     @Override 
     public void onValueSelected(Entry e, int dataSetIndex, Highlight h) { 

      if (e == null) 
       return; 

      RectF bounds = mChart.getBarBounds((BarEntry) e); 
      PointF position = mChart.getPosition(e, mChart.getData().getDataSetByIndex(dataSetIndex) 
        .getAxisDependency()); 
      Log.i("bounds", bounds.toString()); 
      Log.i("position", position.toString()); 

     } 

     @Override 
     public void onNothingSelected() { 

     } 
    }); 

mChart.setDrawBarShadow(false); 
    mChart.setDrawValueAboveBar(true); 
    mChart.setDescription(""); 
    mChart.setMaxVisibleValueCount(5); 
    mChart.setPinchZoom(false); 
    mChart.setDrawGridBackground(false); 

    XAxis xl = mChart.getXAxis(); 
    xl.setPosition(XAxis.XAxisPosition.BOTTOM); 
    xl.setDrawAxisLine(false); 
    xl.setDrawGridLines(false); 
    xl.setGridLineWidth(0.3f); 

    YAxis yl = mChart.getAxisLeft(); 
    yl.setDrawAxisLine(false); 
    yl.setDrawGridLines(false); 
    yl.setGridLineWidth(0.3f); 

    YAxis yr = mChart.getAxisRight(); 
    yr.setDrawAxisLine(false); 
    yr.setDrawGridLines(false); 

    mChart.animateY(2500); 

    mChart.getAxisLeft().setDrawLabels(false); 
    mChart.getAxisRight().setDrawLabels(false); 
    mChart.getXAxis().setDrawLabels(true); 
    mChart.getLegend().setEnabled(false); 
    mChart.getXAxis().setTextColor(Color.parseColor("#585858")); 

Вот JSON для получения данных

try { 
         ArrayList<String> xVals = new ArrayList<String>(); 
         ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>(); 

         JSONObject jsonObject = new JSONObject(response); 
         boolean status = jsonObject.getBoolean("status"); 
JSONObject jsnObj_rating_cunt = jsonObject.getJSONObject("rating_count"); 
          int one = jsnObj_rating_cunt.getInt("1"); 
          int two = jsnObj_rating_cunt.getInt("2"); 
          int three = jsnObj_rating_cunt.getInt("3"); 
          int four = jsnObj_rating_cunt.getInt("4"); 
          int five = jsnObj_rating_cunt.getInt("5"); 

          xVals.add(0, "1 Star"); 
          xVals.add(1, "2 Star"); 
          xVals.add(2, "3 Star"); 
          xVals.add(3, "4 Star"); 
          xVals.add(4, "5 Star"); 

          yVals1.add(new BarEntry((float) one, 0)); 
          yVals1.add(new BarEntry((float) two, 1)); 
          yVals1.add(new BarEntry((float) three, 2)); 
          yVals1.add(new BarEntry((float) four, 3)); 
          yVals1.add(new BarEntry((float) five, 4)); 
BarDataSet set1 = new BarDataSet(yVals1, ""); 
         ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>(); 
         set1.setColors(REVIEWS_COLORS); 
         dataSets.add(set1); 

         BarData data = new BarData(xVals, dataSets); 
         data.setValueTextSize(10f); 

         mChart.setData(data); 

График приходит и значение также приходит, но он не установлен на панели.

Заранее спасибо.

+0

1,2,3 является U настройки вручную или это библиотека встроенных –

+0

Я просто помечать их, чтобы показать, что нет никакого значения прихода. Значения звезд, исходящие от json – Shane

+0

, вы можете распечатать этот оператор Log.e ("sizeOfDataset", "" + dataSets.size()) после этого dataSets.add (set1); –

ответ

-1
for(int i=0;i<dataSets.size();i++){ 
    String name= dataSets.get(i).getYourSpecificPogoName(); 
    textView.setText(name); 
}