2017-07-26 18 views
1

私は折れ線グラフを作成したいのですが、xAxisに値の文字列を表示するのに問題があります。MPAndroidChartからLineChartにライブラリGithubを使用しました。文字列値を追加する方法を、私を助け、実際に多くの質問への私が欲しい私はエラーMPAndroidChartのxAxisの文字列値を設定するには?

無効なインデックス40を得た、サイズがコード

で6

ある

private void drawLineChartLine(){ 

     private float[] yDataL = {40, 60, 70, 80}; 
     private String[] xDataL = {"Week 1", "Week 1" , "Week 3" , "Week 4"}; 


     ArrayList<Entry> yEntrys = new ArrayList<>(); 

     final ArrayList<String> xEntrys = new ArrayList<>(); 

     for(int i = 0; i < yDataL.length; i++){ 
      yEntrys.add(new Entry(yDataL[i] ,i)); 
     } 

     for(int i = 1; i < xDataL.length; i++){ 
      xEntrys.add(xDataL[i]); 
     } 

     //create the data set 
     LineDataSet lineDataset = new LineDataSet(yEntrys, "assa"); 

     XAxis xAxis = lineChart.getXAxis(); 
     xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
     xAxis.setDrawGridLines(false); 


     xAxis.setValueFormatter(new IAxisValueFormatter() { 
      @Override 
      public String getFormattedValue(float value, AxisBase axis) { 
       return xEntrys.get((int) value); 
      } 
     }); 

     LineData lineData = new LineData(lineDataset); 
     lineChart.setData(lineData); 
     lineChart.invalidate(); 
} 

にお問い合わせください

xAxis.setValueFormatter(new IAxisValueFormatter() { 
      @Override 
      public String getFormattedValue(float value, AxisBase axis) { 
       return xEntrys.get((int) value); 
      } 
     }); 

答えて

2

あなたはArrayListインデックスにアクセスしていますが、その方法は範囲外です。インデックスとして値を使用しようとしています。あなたはそれを返すために価値の指標を見つける必要があります。

xAxis.setValueFormatter(new IAxisValueFormatter() { 
    @Override 
    public String getFormattedValue(float value, AxisBase axis) { 
     for (int i = 0 ; i < yEntrys.size(); ++i) { 
      if (yEntrys.get(i).equals(value)) { 
       return xEntrys.get(i); 
      } 
     } 
     return null; 
    } 
}); 
関連する問題