Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用图形视图表示sqlite数据?_Android_Android Sqlite_Android Graphview - Fatal编程技术网

Android 如何使用图形视图表示sqlite数据?

Android 如何使用图形视图表示sqlite数据?,android,android-sqlite,android-graphview,Android,Android Sqlite,Android Graphview,我有一个图视图来实现一个分析图 所有x轴和y轴数据都从sqlite db数据中获取,以显示输出 x轴显示日期 y轴显示重量 但我不知道如何实施,我被卡住了, 下面是我的代码,但它是错误的,我还没有完成,有人可以帮我解决和建立 DBHelperNote connect = new DBHelperNote(getActivity()); SQLiteDatabase db = connect.getReadableDatabase(); Cursor curso

我有一个图视图来实现一个分析图 所有x轴和y轴数据都从sqlite db数据中获取,以显示输出 x轴显示日期 y轴显示重量

但我不知道如何实施,我被卡住了, 下面是我的代码,但它是错误的,我还没有完成,有人可以帮我解决和建立

  DBHelperNote connect = new DBHelperNote(getActivity());
        SQLiteDatabase db = connect.getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM weight;",null);

        String[] weight = new String[cursor.getCount()];
        int i = 0;

        while(cursor.moveToNext()){
            d = cursor.getString(cursor.getColumnIndex("weightnum"));
            weight[i] = d;
            i++;
        }

        String[] date = new String[cursor.getCount()];
        int r = 0;
        while(cursor.moveToNext()){
            e = cursor.getString(cursor.getColumnIndex("date"));
            date[r] = e;
            r++;
        }

        GraphView line_graph = (GraphView) contentView.findViewById(R.id.graph);
        LineGraphSeries<DataPoint> line_series =
                new LineGraphSeries<DataPoint>(new DataPoint[] {

>> here "while" getting error

                        while ( a!=weight.length) {
                           new DataPoint(Integer.parseInt(weight[i]), Integer.parseInt(date[i]));
                            i++;
                            }

                }
        );
        line_graph.addSeries(line_series);
        line_series.setDrawDataPoints(true);
        line_series.setDataPointsRadius(10);
        line_series.setOnDataPointTapListener(new OnDataPointTapListener() {
            @Override
            public void onTap(Series series, DataPointInterface dataPoint) {
                Toast.makeText(getActivity(), "Series: On Data Point clicked: " + dataPoint, Toast.LENGTH_SHORT).show();
            }
        });
DBHelperNote connect=newdbhelpernote(getActivity());
SQLiteDatabase db=connect.getReadableDatabase();
Cursor Cursor=db.rawQuery(“从权重中选择*”,null);
字符串[]权重=新字符串[cursor.getCount()];
int i=0;
while(cursor.moveToNext()){
d=cursor.getString(cursor.getColumnIndex(“weightnum”);
重量[i]=d;
i++;
}
字符串[]日期=新字符串[cursor.getCount()];
int r=0;
while(cursor.moveToNext()){
e=cursor.getString(cursor.getColumnIndex(“日期”);
日期[r]=e;
r++;
}
GraphView line_graph=(GraphView)contentView.findviewbyd(R.id.graph);
LineGraphSeries line_系列=
新LineGraphSeries(新数据点[]{
>>这里是“while”获取错误
while(a!=重量、长度){
新数据点(Integer.parseInt(权重[i]),Integer.parseInt(日期[i]);
i++;
}
}
);
线图。添加系列(线系列);
line_系列。setDrawDataPoints(真);
line_系列setDataPointsRadius(10);
line_series.setOnDataPointTapListener(新的OnDataPointTapListener(){
@凌驾
公共void onTap(系列、数据点接口、数据点){
Toast.makeText(getActivity(),“系列:在单击数据点时:”+dataPoint,Toast.LENGTH_SHORT).show();
}
});

Hmn,在他们的示例中,数据类型可能有错误。他们使用double而不是int。

专用数据点[]生成数据(){
整数计数=30;
数据点[]值=新数据点[计数];

对于(int i=0;你在使用shinobicharts吗?你不明白你的意思吗?你能指导我吗?shinobicharts是一个显示图形的库。它很容易使用。检查一下它的文档
private DataPoint[] generateData() {
        int count = 30;
        DataPoint[] values = new DataPoint[count];
        for (int i=0; i<count; i++) {
            double x = i;
            double f = mRand.nextDouble()*0.15+0.3;
            double y = Math.sin(i*f+2) + mRand.nextDouble()*0.3;
            DataPoint v = new DataPoint(x, y);
            values[i] = v;
        }
        return values;