Android:How to write to SQL database

前端 未结 2 1651
日久生厌
日久生厌 2021-01-26 17:25

I have been trying to follow the newBoston tutorial and find myself with a runtime error when I click a button to write data to a database. LogCat displays \"Could not find a me

相关标签:
2条回答
  • 2021-01-26 18:08

    LogCat displays "Could not find a method addModuleButton(View) in the activity."

    Your button seems to use the XML attribute android:onClick="addModuleButton", so simply change this:

    public void onClick (View addModuleButton) 
    

    into this:

    public void addModuleButton (View view)
    

    From the onClick documentation:

    This name must correspond to a public method that takes exactly one parameter of type View. For instance, if you specify android:onClick="sayHello", you must declare a public void sayHello(View v) method of your context (typically, your Activity).

    0 讨论(0)
  • 2021-01-26 18:20

    Database Class

    private static class DbHelper extends SQLiteOpenHelper {
               public static final String KEY_ROWID = "_id";
                public static final String KEY_MODULECODE = "module_code";
                public static final String KEY_MODULENAME = "module_name";
                public static final String KEY_MODULETYPE = "module_type";
                public static final String KEY_MODULEDAY = "module_day";
                public static final String KEY_MODULESTART = "module_start";
                public static final String KEY_MODULEEND = "module_end";
                public static final String KEY_MODULELOCATION = "module_location";
                public static final String KEY_MODULECOMMENTS = "module_comments";
    
    
        private static final String DATABASE_NAME = "module_database";
        private static final String DATABASE_TABLE = "my_modules";
        private static final int DATABASE_VERSION = 1;
    
        private DbHelper myHelper;
        private final Context myContext;
        private SQLiteDatabase moduleDatabase;
    
            public DbHelper(Context context){
                super(context, DATABASE_NAME, null, DATABASE_VERSION);
    
            }
    
            @Override
            public void onCreate(SQLiteDatabase db) {
                db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
                            KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                            KEY_MODULECODE + " TEXT NOT NULL, " +
                            KEY_MODULENAME + " TEXT NOT NULL, " +
                            KEY_MODULETYPE + " TEXT NOT NULL, " +
                            KEY_MODULEDAY + " TEXT NOT NULL, " +
                            //KEY_MODULESTART + " TEXT, " +
                            //KEY_MODULEEND + " TEXT, " +
                            KEY_MODULELOCATION + " TEXT NOT NULL, " +
                            KEY_MODULECOMMENTS + " TEXT NOT NULL,);"
                        );
    
            }
    
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                // TODO Auto-generated method stub
                db.execSQL("DROP TABEL IF EXISTS " + DATABASE_TABLE);
                onCreate(db);
    
            }
    
    
        }
    
        public database(Context c){
            myContext = c;
        }
    
        public  database open()throws SQLException{
            myHelper = new DbHelper(myContext);
            moduleDatabase = myHelper.getWritableDatabase();
            return this;
        }
    
        public void close(){
        myHelper.close();
        }
    
        public long createEntry(String moduleCode, String moduleName, String moduleType,
                String moduleDay, String moduleLocation, String moduleComments) {
            ContentValues cv = new ContentValues();
            cv.put(KEY_MODULECODE,moduleCode);
            cv.put(KEY_MODULENAME,moduleName);
            cv.put(KEY_MODULETYPE,moduleType);
            cv.put(KEY_MODULEDAY,moduleDay);
            cv.put(KEY_MODULELOCATION,moduleLocation);
            cv.put(KEY_MODULECOMMENTS,moduleComments);
            return moduleDatabase.insert(DATABASE_TABLE,null,cv);
            // TODO Auto-generated method stub
    
        }
    

    module Activity

    DbHelper  myHelper= new DbHelper (this, DATABASENAME, null, VERSION_CODE);
    SQLiteDatabase db = myHelper.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("module_code", "XXX");
    values.put("module_name", "XXX");
    ...
    db.insert("module_database", "", values);
    
    0 讨论(0)
提交回复
热议问题