Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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 来自数据库的条形图_Android_Database_Sqlite_Bar Chart_Achartengine - Fatal编程技术网

Android 来自数据库的条形图

Android 来自数据库的条形图,android,database,sqlite,bar-chart,achartengine,Android,Database,Sqlite,Bar Chart,Achartengine,嗨,我是android新手,我已经编写了以下代码来绘制折线图。我正在使用数据库将值传递给图形,但图形没有打印 你能告诉我如何改变下面的代码来画一个条形图吗 import org.achartengine.ChartFactory; import org.achartengine.chart.PointStyle; import org.achartengine.model.TimeSeries; import org.achartengine.model.XYMultipleSeriesData

嗨,我是android新手,我已经编写了以下代码来绘制折线图。我正在使用数据库将值传递给图形,但图形没有打印

你能告诉我如何改变下面的代码来画一个条形图吗

import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Color;
public class ChartActivity<BMICalculatorDB> extends Activity{

    public ChartActivity() {
        super();
    }
        public ChartActivity(Context context, String name, CursorFactory factory,
            int version, DatabaseErrorHandler errorHandler) {
        super();
        // TODO Auto-generated constructor stub
    }


        public static final String KEY_BMIID = "bmi_id";
        public static final String KEY_BMIDATA = "bmi_data";
        public static final String KEY_BMIDATE = "bmi_date";

        private static final String DATABASE_NAME = "Jayant";
        private static final String DATABASE_TABLE = "android_metadata";
        private static final int DATABASE_VERSION = 2;

        private DBHelper ourHelper;
        private static Context ourContext;
        private SQLiteDatabase ourDatabase;

        private static class DBHelper extends SQLiteOpenHelper{

            public DBHelper(Context context) {
                super(context, DATABASE_NAME, null, DATABASE_VERSION);
                // TODO Auto-generated constructor stub
            }

            @Override
            public void onCreate(SQLiteDatabase db) {
                // TODO Auto-generated method stub
                db.execSQL( "CREATE TABLE " + DATABASE_TABLE + " (" +
                KEY_BMIID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                        KEY_BMIDATA + " TEXT NOT NULL, " +
                        KEY_BMIDATE + " TEXT NOT NULL );"
                        );
            }

            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                // TODO Auto-generated method stub
                db.execSQL( "DROP TABLE IF EXISTS " + DATABASE_TABLE );
                onCreate(db);
            }

        }

        public void BMICalculatorDB(Context c){
            ourContext = c;
        }

        @SuppressWarnings("unchecked")
        public BMICalculatorDB open(){
            ourHelper = new DBHelper(ourContext);
            ourDatabase = ourHelper.getWritableDatabase();
            return (BMICalculatorDB) this;
        }

        public void close(){
            ourHelper.close();
        }

        public long createEntry( String data, String date ) {
            //, String date 
            // TODO Auto-generated method stub
            ContentValues cv = new ContentValues();
            cv.put(KEY_BMIDATA, data);
            cv.put(KEY_BMIDATE, date);
            return ourDatabase.insert(DATABASE_TABLE, null, cv);
        }

        public String getBMIID() {
            // TODO Auto-generated method stub
            String[] column =
                    new String[]{ KEY_BMIID };
            Cursor c = 
                    ourDatabase.query(DATABASE_TABLE, column, null, null, null, null, null);

            String result = "";
            int iID = c.getColumnIndex(KEY_BMIID);

            for ( c.moveToFirst(); ! c.isAfterLast(); c.moveToNext() ){
                result = result + c.getString(iID);
            }

            return result;
        }

        public String getBMIDataData(){

            String[] column =
                        new String[]{ KEY_BMIDATA };
                Cursor c = 
                        ourDatabase.query( DATABASE_TABLE, column, null, null, null, null, null );

                String result = "";
                int iData = c.getColumnIndex( KEY_BMIDATA );

                for ( c.moveToFirst(); ! c.isAfterLast(); c.moveToNext() ){
                    result = result + c.getString( iData );
                }


            return result;
        }

        public String getBMIDateData(){
            String[] column =
                    new String[]{ KEY_BMIDATE };
            Cursor c = 
                    ourDatabase.query( DATABASE_TABLE, column, null, null, null, null, null );

            String result = "";
            int iDate = c.getColumnIndex( KEY_BMIDATE);

            for ( c.moveToFirst(); ! c.isAfterLast(); c.moveToNext() ){
                result = result + c.getString( iDate );
            }


        return result;
        }

        public void updateEntry( long lId, String mData, String mDate ) {
            // TODO Auto-generated method stub
            ContentValues cvUpdate = new ContentValues();

            cvUpdate.put( KEY_BMIDATA, mData );
            cvUpdate.put( KEY_BMIDATE, mDate );
            ourDatabase.update( DATABASE_TABLE, cvUpdate, KEY_BMIID + " = lId", null );
        }

        public String getData(long l) {
            // TODO Auto-generated method stub
            return null;
        }

        public String getDate(long l) {
            // TODO Auto-generated method stub
            return null;
        }

        public XYMultipleSeriesDataset getDemoDataset(String title) {

            String[] column =
                    new String[]{ KEY_BMIDATA };
            Cursor c = ourHelper.getWritableDatabase().query( DATABASE_TABLE, column, null, null, null, null, null );

            XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

            TimeSeries series = new TimeSeries("Bar1");
            TimeSeries series2 = new TimeSeries(title);

            getBMIDataData();

            while (!c.isAfterLast()) {
                int date = c.getInt((Integer) c.getColumnIndexOrThrow("DAYS"));
                int weight = c.getInt((Integer) c.getColumnIndexOrThrow("TOP 10"));
                series2.add(weight, date);
                c.moveToNext();
            }

            c.close();

            dataset.addSeries(series);
            dataset.addSeries(series2);

            return dataset;
        }


        public Intent getIntent(Context context) {

            //Lager TimeSeries for den første linja
            XYMultipleSeriesDataset dataset = getDemoDataset("Bar1");

            //Kode for render
            XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();

            //Optimalisering linje1
            XYSeriesRenderer renderer = new XYSeriesRenderer();
            renderer.setColor(Color.YELLOW);
            renderer.setPointStyle(PointStyle.CIRCLE);
            renderer.setFillPoints(true);

            // Optimalisering linje2 husk rekke følgen
            XYSeriesRenderer renderer2 = new XYSeriesRenderer();
            renderer2.setColor(Color.BLUE);
            renderer2.setPointStyle(PointStyle.SQUARE);
            renderer2.setFillPoints(true);

            //Legger til render seriene
            mRenderer.addSeriesRenderer(renderer);

            //Optimalisering grafen
            mRenderer.setChartTitle("Test");
            mRenderer.setZoomEnabled(true);
            mRenderer.setZoomButtonsVisible(true);
            mRenderer.setBackgroundColor(Color.BLACK);
            mRenderer.setApplyBackgroundColor(true);
            mRenderer.setXTitle("Dager");
            mRenderer.setShowGrid(true);

            mRenderer.addSeriesRenderer(renderer2);


            Intent intent = ChartFactory.getLineChartIntent(context, dataset, 
                    mRenderer, "Bar Graph Title");

            return intent;

        }

        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub

        }

        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub

        }
    }
import org.achartengine.ChartFactory;
导入org.achartengine.chart.PointStyle;
导入org.achartengine.model.TimeSeries;
导入org.achartengine.model.xymultiplesseriesdataset;
导入org.achartengine.renderer.XYMultipleSeriesRenderer;
导入org.achartengine.renderer.XYSeriesRenderer;
导入android.app.Activity;
导入android.content.ContentValues;
导入android.content.Context;
导入android.content.Intent;
导入android.database.Cursor;
导入android.database.DatabaseErrorHandler;
导入android.database.sqlite.SQLiteDatabase;
导入android.database.sqlite.SQLiteDatabase.CursorFactory;
导入android.database.sqlite.SQLiteOpenHelper;
导入android.graphics.Color;
公共类活动扩展了活动{
公共活动(){
超级();
}
公共图表活动(上下文上下文、字符串名称、游标工厂、,
int版本,DatabaseErrorHandler(错误处理程序){
超级();
//TODO自动生成的构造函数存根
}
公共静态最终字符串键\u bmid=“bmi\u id”;
公共静态最终字符串键\u BMIDATA=“bmi\u data”;
公共静态最终字符串键\u BMIDATE=“bmi\u date”;
私有静态最终字符串数据库\u NAME=“Jayant”;
私有静态最终字符串数据库\u TABLE=“android\u元数据”;
私有静态最终int数据库_VERSION=2;
私人助理;
私有静态语境;
私有SQLITE数据库;
私有静态类DBHelper扩展了SQLiteOpenHelper{
公共DBHelper(上下文){
super(上下文、数据库名称、null、数据库版本);
//TODO自动生成的构造函数存根
}
@凌驾
public void onCreate(SQLiteDatabase db){
//TODO自动生成的方法存根
db.execSQL(“创建表”+数据库表+”(“+
密钥\u bmid+“整数主键自动递增,”+
密钥\u BMIDATA+“文本不为空,”+
键“\u BMIDATE+”文本不为空“;”
);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
//TODO自动生成的方法存根
db.execSQL(“如果存在删除表”+数据库_表);
onCreate(db);
}
}
公共关系数据库B(上下文c){
ourContext=c;
}
@抑制警告(“未选中”)
公共计算数据库开放(){
ourHelper=newdbhelper(ourContext);
ourDatabase=ourHelper.getWritableDatabase();
返回(b)这个;
}
公众假期结束(){
ourHelper.close();
}
公共长createEntry(字符串数据、字符串日期){
//,字符串日期
//TODO自动生成的方法存根
ContentValues cv=新的ContentValues();
cv.put(关键数据、数据);
cv.put(关键日期、日期);
返回ourDatabase.insert(DATABASE_TABLE,null,cv);
}
公共字符串getbmid(){
//TODO自动生成的方法存根
字符串[]列=
新字符串[]{KEY_bmid};
光标c=
query(数据库表,列,null,null,null,null,null,null);
字符串结果=”;
int iID=c.getColumnIndex(键\u bmid);
for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
结果=结果+c.getString(iID);
}
返回结果;
}
公共字符串getBMIDataData(){
字符串[]列=
新字符串[]{KEY_BMIDATA};
光标c=
query(数据库表,列,null,null,null,null,null,null);
字符串结果=”;
int iData=c.getColumnIndex(关键数据);
for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
结果=结果+c.getString(iData);
}
返回结果;
}
公共字符串getBMIDateData(){
字符串[]列=
新字符串[]{KEY_BMIDATE};
光标c=
query(数据库表,列,null,null,null,null,null,null);
字符串结果=”;
int iDate=c.getColumnIndex(键日期);
for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
结果=结果+c.getString(iDate);
}
返回结果;
}
public void updateEntry(长盖、字符串mData、字符串mDate){
//TODO自动生成的方法存根
ContentValues cvUpdate=新ContentValues();
cvUpdate.put(KEY_BMIDATA,mData);
cvUpdate.put(KEY_BMIDATE,mDate);
update(DATABASE_TABLE,cvUpdate,KEY_bmid+“=lId”,null);
}
公共字符串getData(长l){
//TODO自动生成的方法存根
返回null;
}
公共字符串getDate(长l){
//TODO自动生成的方法存根
返回null;
}
公共XYMultipleSeriesDataset getDemoDataset(字符串标题){
字符串[]列=
新字符串[]{KEY_BMIDATA};
游标c=ourHelper.getWritableDatabase().query(数据库表,列,null,null,null,null);
XYmultiplesseriesdataset数据集=新的XYmultiplesseriesdatas
public ChartActivity() {
    super();
}
Caused by: java.lang.InstantiationException: can't instantiate class flu.solutions.travelsense.ChartActivity; no empty constructor