2011-07-14 5 views
1
public static ArrayList<double[]> Value = new ArrayList<double[]>(); 
    private double[] x = new double[10]; 
    private double[] y = new double[10]; 
    int counter = -1; 

add.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       counter++; 
       x[counter] = Double.parseDouble(income_1.getText().toString()); 
       y[counter] = Double.parseDouble(income_2.getText().toString()); 
       income_1.setText(""); 
       income_2.setText(""); 
      } 
     }); 

publish.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (Value != null) { 
        Value.add(x); 
        Value.add(y); 
        Intent intent = salesStackedBarChart.execute(BarChart.this, 
          Value, counter); 
        startActivity(intent); 
       } 
      } 
     }); 


//and in SalesStackedBarChart.java class 

public Intent execute(Context context, ArrayList<double[]> values ,int counter) { 
     int count = counter + 1; 
     double fcount = counter + 1.5; 
     String[] titles = new String[] { "Android", "iPhone" }; 
     int[] colors = new int[] { Color.GREEN, Color.CYAN }; 
     XYMultipleSeriesRenderer renderer = buildBarRenderer(colors); 
     setChartSettings(renderer, "Yearly revenue in the last "+count+" years", "Years", "revenue in $", 0.5, 
       fcount, 0, 24000, Color.GRAY, Color.LTGRAY); 
     renderer.setXLabels(count); 
     renderer.setYLabels(10); 
     renderer.setDisplayChartValues(true); 
     renderer.setXLabelsAlign(Align.LEFT); 
     renderer.setYLabelsAlign(Align.LEFT); 
     renderer.setZoomRate(1.1f); 
     renderer.setBarSpacing(0.5); 
     return ChartFactory.getBarChartIntent(context, buildBarDataset(titles, values), renderer, 
      Type.DEFAULT); 
     } 

// in AbstractDemoChart.java class 

protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values) { 
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
    int length = titles.length; 
    for (int i = 0; i < length; i++) { 
     CategorySeries series = new CategorySeries(titles[i]); 
     double[] v = values.get(i); 
     int seriesLength = v.length; 
     for (int k = 0; k < seriesLength; k++) { 
     series.add(v[k]); 
     } 
     dataset.addSeries(series.toXYSeries()); 
    } 
    return dataset; 
    } 

ラン私はx軸の値を持つグラフ取得このプロジェクト値を取得することができません:は、切り抜いたx軸の値に対して

1,2,3,4,5.... 

をしかし、私は値を印刷したい:

2005,2006,2007,2008..... 

私のようないくつかのコードで変更:

setChartSettings(renderer, "Yearly revenue in the last "+count+" years", "Years", "revenue in $", 2005, 
       2010, 0, 24000, Color.GRAY, Color.LTGRAY); 

を実行してプロジェクトを実行すると、x軸の値は次のようになります。

2005,2006,2007.... 

グラフの値は取得できません。すべてのx軸の値はnullです。どうすればこの作品を作れますか? x-axis value 1,2,3...

when change x-axis value 2006,2007,....

答えて

2

public static ArrayList<double[]> Value = new ArrayList<double[]>();
private double[] x = new double[2010];
private double[] y = new double[2010];
int counter = 2005;

+0

u mohitに感謝します...しかし、配列サイズはとても大きいです。実行時間はもっとかかる... –

0

私はそれをこのように行っている:

xScale = 5;  
Calendar today = Calendar.getInstance(); 
for (int i = 0; i < this.xScale; i++) { 
     Calendar c = (Calendar) today.clone(); 
     c.set(today.get(Calendar.YEAR), today.get(Calendar.MONTH), today.get(Calendar.DATE) - (this.xScale - (i + 1))); 
     x.get(0)[i] = new Date(c.get(Calendar.YEAR) - 1900, c.get(Calendar.MONTH), c.get(Calendar.DATE)); 
     x.get(1)[i] = new Date(c.get(Calendar.YEAR) - 1900, c.get(Calendar.MONTH), c.get(Calendar.DATE)); 
} 

このショーあなたの最後の5日間はx軸