2016-09-30 2 views
0

Я очень легко создал гистограмму с использованием библиотеки MPAndroidChart и экспериментировал с приведенным ниже примером. Я изо всех сил пытаюсь найти информацию о том, как связать реальные данные из моего приложения с этой гистограммой. Пример, приложение для оценщика. Как составить ежедневные итоговые оценки на гистограмме для команды a и команды b? Мое приложение отображает баллы для обеих команд, но как мне передать этот отображаемый итоговый балл в этот код ниже? (Я занимаюсь разработкой Android в течение 6 недель).Добавить реальные данные в столбчатую диаграмму: Android Studio

/*Displays the given score for Team A.*/ 
    public void displayForTeamB(int score) { 
      TextView scoreView = (TextView) findViewById(R.id.team_a_score); 
      scoreView.setText(String.valueOf(score)); 
     } 


    repositories { 
     maven { url "https://jitpack.io" } 
    } 

    dependencies { 
     compile 'com.github.PhilJay:MPAndroidChart:v2.0.9' 
    } 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:tools="http://schemas.android.com/tools" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:paddingLeft="@dimen/activity_horizontal_margin" 
        android:paddingRight="@dimen/activity_horizontal_margin" 
        android:paddingTop="@dimen/activity_vertical_margin" 
        android:paddingBottom="@dimen/activity_vertical_margin" 
        tools:context=".MainActivity"> 

     <com.github.mikephil.charting.charts.BarChart 
      android:id="@+id/chart" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </RelativeLayout> 

    package com.truiton.mpchartexample; 

    import android.graphics.Color; 
    import android.os.Bundle; 
    import android.support.v7.app.ActionBarActivity; 

    import com.github.mikephil.charting.charts.BarChart; 
    import com.github.mikephil.charting.data.BarData; 
    import com.github.mikephil.charting.data.BarDataSet; 
    import com.github.mikephil.charting.data.BarEntry; 
    import com.github.mikephil.charting.utils.ColorTemplate; 

    import java.util.ArrayList; 

    public class MainActivity extends ActionBarActivity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      BarChart chart = (BarChart) findViewById(R.id.chart); 

      BarData data = new BarData(getXAxisValues(), getDataSet()); 
      chart.setData(data); 
      chart.setDescription("My Chart"); 
      chart.animateXY(2000, 2000); 
      chart.invalidate(); 
     } 

     private ArrayList<BarDataSet> getDataSet() { 
      ArrayList<BarDataSet> dataSets = null; 

      ArrayList<BarEntry> valueSet1 = new ArrayList<>(); 
      BarEntry v1e1 = new BarEntry(110.000f, 0); // Jan 
      valueSet1.add(v1e1); 


      ArrayList<BarEntry> valueSet2 = new ArrayList<>(); 
      BarEntry v2e1 = new BarEntry(150.000f, 0); // Jan 
      valueSet2.add(v2e1); 


      BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Brand 1"); 
      barDataSet1.setColor(Color.rgb(0, 155, 0)); 
      BarDataSet barDataSet2 = new BarDataSet(valueSet2, "Brand 2"); 
      barDataSet2.setColors(ColorTemplate.COLORFUL_COLORS); 

      dataSets = new ArrayList<>(); 
      dataSets.add(barDataSet1); 
      dataSets.add(barDataSet2); 
      return dataSets; 
     } 

     private ArrayList<String> getXAxisValues() { 
      ArrayList<String> xAxis = new ArrayList<>(); 
      xAxis.add("JAN"); 
      xAxis.add("FEB"); 
      xAxis.add("MAR"); 
      xAxis.add("APR"); 
      xAxis.add("MAY"); 
      xAxis.add("JUN"); 
      return xAxis; 
     } 
    } 

ответ

1

Просмотрев свой код, вы уже можете установить базовый интерфейс графа. Поэтому я пишу только код для того, что вам нужно, чтобы назначить записи для вашей линии оценки, которая будет выглядеть как этот образец из моего кода.

 // creating list of entry 
     ArrayList<Entry> entries = new ArrayList<>(); 
     entries.add(new Entry(100f, 0)); 
     entries.add(new Entry(1000f, 1)); 
     entries.add(new Entry(600f, 2)); 
     entries.add(new Entry(1500f, 3)); 
     entries.add(new Entry(3500f, 4)); 


     final LineDataSet dataset = new LineDataSet(entries, ""); 
     dataset.setDrawCircles(true); 
     dataset.setDrawCubic(true); 
     dataset.setLineWidth(7f); 
     dataset.setValueTextColor(getResources().getColor(R.color.colorAccent)); 
     dataset.setColor(Color.parseColor("#ED1A4D")); 
     dataset.setValueTextSize(14f); 
     dataset.setCircleColor(Color.parseColor("#ED1A4D")); 
     dataset.setCircleRadius(7f); 
     dataset.setCircleColorHole(0); 

// creating labels 
     final ArrayList<String> labels = new ArrayList<String>(); 
     labels.add("12AM"); 
     labels.add("06AM"); 
     labels.add("12PM"); 
     labels.add("06PM"); 
     labels.add("12AM"); 


     List<ILineDataSet> dataSetslist = new ArrayList<ILineDataSet>(); 
     dataSetslist.add(dataset); 

LineData data = new LineData(labels, dataSetslist); 


lineChart.setData(data); // set the data and list of lables into chart 
     lineChart.animateY(1500); 
     lineChart.setDescription("Daily report"); 
     lineChart.setScaleEnabled(false); 

Надеюсь, это поможет вам, если вам по-прежнему нужна дополнительная помощь, не стесняйтесь комментировать.

+0

Спасибо. Я до сих пор не понимаю, как изменить код для добавления данных в реальном времени с пользовательских входов. В данный момент это выходит за рамки моего понимания. Я пытаюсь сделать слишком много с таким небольшим опытом. В любом случае спасибо. – GAK76

+0

Не беспокойтесь! каждый должен где-то начинать. , , Я тоже начинаю стараться быть промежуточным. Если вы хотите, я могу предоставить вам полный образец кода. –

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