Wie nehmen Sie die Werte aus einer Datenbank in den plot ein Balkendiagramm?

Hallo, ich bin neu auf android und ich bin der Entwicklung einer app zur Anzeige der top 10 Reiseziele mit achartengine. Das problem ist, dass ich mit random generierten Werte zum Plotten der Graphen. Was ich brauche, ist eine Verbindung zu einer Datenbank erstellt mit dem sqlite data browser, um den Verlauf der Graphen. Ich bin nach folgendem tutorial zum zeichnen des Graphen http://www.youtube.com/watch?v=E9fozQ5NlSo. Aber ich bin nicht der Suche nach vielen tutorials auf, wie die Verbindung zur Datenbank zu plot bar chart. Bitte posten Sie keine links für die oben genannten.

package flu.solutions.travelsense;


import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.achartengine.ChartFactory;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;  
import android.view.Menu;
public class ChartActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
        setChartSettings(renderer);
        Intent intent = ChartFactory.getBarChartIntent(this, getBarDemoDataset(), renderer, Type.DEFAULT);
        startActivity(intent);
    }

    public Intent createIntent() 

     {

    String[] titles = new String[] { "Top 10 Destinations", " " };
    List<double[]> values = new ArrayList<double[]>();
    values.add(new double[] { 8, 6, 4, 6, 7, 7, 9, 5, 7, 8, 8 });
    values.add(new double[] {});

    int[] colors = new int[] { Color.RED, Color.BLACK};

    XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
    renderer.setOrientation(Orientation.HORIZONTAL);

    setChartSettings(renderer);

    renderer.setXLabels(1);
    renderer.setYLabels(10);

    renderer.addXTextLabel(1, "Bangalore");
    renderer.addXTextLabel(2, "Mysore");
    renderer.addXTextLabel(3, "Chennai");
    renderer.addXTextLabel(4, "Delhi");
    renderer.addXTextLabel(5, "Kolkatta");
    renderer.addXTextLabel(6, "Kashmir");
    renderer.addXTextLabel(7, "Hyderabad");
    renderer.addXTextLabel(8, "Mumbai");
    renderer.addXTextLabel(9, "Kerala");
    renderer.addXTextLabel(10, "Gujarat");

    int length = renderer.getSeriesRendererCount();
    for (int i = 0; i < length; i++) 
    {
      SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i);
      seriesRenderer.setDisplayChartValues(false);
      }

    return ChartFactory.getBarChartIntent(this, buildBarDataset(titles, values), renderer,Type.DEFAULT);
    }

    public XYMultipleSeriesRenderer getBarDemoRenderer() {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        renderer.setAxisTitleTextSize(16);
        renderer.setChartTitleTextSize(20);
        renderer.setLabelsTextSize(15);
        renderer.setLegendTextSize(15);
        renderer.setMargins(new int[] {20, 30, 15, 0});
        SimpleSeriesRenderer r = new SimpleSeriesRenderer();
        r.setColor(Color.BLUE);
        renderer.addSeriesRenderer(r);
        r = new SimpleSeriesRenderer();
        r.setColor(Color.GREEN);
        renderer.addSeriesRenderer(r);
        return renderer;
      }

     private XYMultipleSeriesDataset getBarDemoDataset() {
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        final int nr = 10;
        Random r = new Random();
        int SERIES_NR = 2;
        for (int i = 0; i < SERIES_NR; i++) {
          CategorySeries series = new CategorySeries("Demo series " + (i + 1));
          for (int k = 0; k < nr; k++) {
            series.add(100 + r.nextInt() % 100);
          }
          dataset.addSeries(series.toXYSeries());
        }
        return dataset;
      }



    private void setChartSettings(XYMultipleSeriesRenderer renderer) {
        renderer.setChartTitle("Chart demo");
        renderer.setXTitle("x values");
        renderer.setYTitle("y values");
        renderer.setXAxisMin(0);
        renderer.setXAxisMax(5);
        renderer.setYAxisMin(0);
        renderer.setYAxisMax(250);
      }
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_chart, menu);
        return true;
    }
      }

Können Sie mir sagen, was ich falsch mache hier.

  • dazu müssen Sie einfach laden Sie das array von doubles, die Sie verwenden würden, durch Durchlaufen einer Datenbank-Abfrage. was haben Sie bisher ausprobiert?
  • Nein, ich weiß nicht, wie die Verbindung zur Datenbank zu meiner app. Völlig neue here.@mango
  • die Antwort auf so etwas zu ausführlich, und benötigt viel Information nicht zur Verfügung gestellt, um angemessen behandelt hier. mit einer hier ein paar tutorials auf der Datenbank: developer.android.com/training/notepad/index.html und vogella.com/articles/AndroidSQLite/article.html. geben Sie einen Schuss und sehen, wenn Sie können Stück, was Sie brauchen, zusammen. dann kommen Sie zurück für mehr spezifische Themen.
  • Vielen Dank ich werde das ausprobieren und wieder wenn ich irgendwelche Fragen....:)
InformationsquelleAutor user1844638 | 2012-12-11
Schreibe einen Kommentar