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
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 apublic void sayHello(View v)method of your context (typically, your Activity).
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);