2011-04-06 6 views
1

저는 이것을 연구 중이며 많은 것을 찾지 못했습니다. 아마도 매우 간단하기 때문일 것입니다. 내가 가진 커서에서 막대 그래프를 agraphengine에 채우려고합니다. 커서가 30 행 (예상)을 뒤로 당긴다는 것을 확인했지만 거기에서 어디로 가야할지 모르겠습니다.데이터베이스에서 achartengine 그래프 채우기

: - achartengine에서

public static List<double[]> getChartData(int iDays){ 
    List<double[]> values = new ArrayList<double[]>(); 

// 커서 반환 30 개 결과

여기
Cursor graphData = db.query(CS_Table, new String [] {"count(*)-1"}, null, null, "strftime('%Y-%m-%d', " + Time + ")", "strftime('%Y-%m-%d', " + CS_Drink_Time + ") BETWEEN strftime('%Y-%m-%d', date('now','-" + iDays + " day')) and strftime('%Y-%m-%d','now')", Time , null); 

    for(graphData.moveToFirst(); graphData.moveToNext(); graphData.isAfterLast()) { 
     values.add(new double[] {graphData.getInt(0)}); 
     graphData.moveToNext(); 
     } 

    graphData.close(); 
    return values; 
} 

그리고 함수를 호출한다 무엇을 기대 : 여기

내가 채우는거야 내 배열입니다
public Intent execute(Context context) { 
    String[] titles = new String[] { "total" }; 
    List<double[]> values = new ArrayList<double[]>(DBhelper.getChartData(30)); 
values.addAll(DBhelper.getChartData(30)); 
    int[] colors = new int[] { Color.BLUE}; 
    XYMultipleSeriesRenderer renderer = buildBarRenderer(colors); 
    setChartSettings(renderer, "Drinks in the past " + DBhelper.getChartData(30) + " days", "Date", DBhelper.CS_YDrinks, 0, 
     /*y axis*/32, 0, /*x axis*/10, Color.GRAY, Color.LTGRAY); 
    renderer.setXLabels(12); 
    renderer.setYLabels(10); 
    renderer.setDisplayChartValues(true); 
    renderer.setXLabelsAlign(Align.LEFT); 
    renderer.setYLabelsAlign(Align.LEFT); 
    // renderer.setPanEnabled(false); 
    // renderer.setZoomEnabled(false); 
    renderer.setZoomRate(1.1f); 
    renderer.setBarSpacing(0.5); 
    return ChartFactory.getBarChartIntent(context, buildBarDataset(titles, values), renderer, 
     Type.STACKED); 

증상은 배열 목록에서 첫 번째 숫자 만 끌어 오는 것처럼 보입니다. 막대 하나 줄거리. 모든 제안을 부탁드립니다.

+2

이상한 방법으로 buildBarDataset을 사용하고 있는데, 예제에서 가져온 것 같군요? 당신이 그것을 수정 한 것 같아? 어떤 방법으로? 내 생각 엔 buildBarDataset은 각각의 값이있는 여러 데이터 세트를 반환한다는 것입니다. 이것은 아마도 당신이 원하는 것이 아닙니다. – larlin

답변

2

문자열과 색상 배열의 각 막대와 일치하는 값을 입력해야합니다. '총'이라는 제목의 파란색 막대가 하나만 보입니다.

관련 문제