2016-09-30 24 views
0

私は非常に簡単にMPAndroidChartライブラリを使って棒グラフを作成し、以下の例を試しました。私は実際のデータをアプリケーションからこの棒グラフにリンクする方法に関する情報を見つけるのに苦労しています。例、スコアキーパーアプリ。チームaとチームbの棒グラフに日々の最終得点をプロットする方法は?私のアプリは両方のチームの得点を表示しますが、表示された最終得点をこのコードにどのように転送するのですか? (私は6週間アンドロイド開発を行ってきただけです)。棒グラフに実際のデータを追加する:Androidスタジオ

/*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

心配はいりません!誰もがどこかに出発しなければならない。 。 。私は中級者になろうとする初心者です。必要ならば、サンプルコードを完成させることができます。 –

関連する問題