@TheReader è giusto. Preferisco un singolo SQLiteOpenHelper per tutte le tabelle, ecco cosa faccio: passare un elenco di sql di "creazione tabella" al Costruttore della sottoclasse SQLiteOpenHelper, quindi nella funzione onCreate iterare l'elenco per creare ogni tabella. quindi il mio SQLiteOpenHelper sottoclasse sembra sth come questo:
public ModelReaderDbHelper(Context context, List<String> createSQLs, List<String> deleteSQLs){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
this.TABLE_CREATION_SQLS = createSQLs;
this.TABLE_DELETE_SQLS = deleteSQLs;
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
for(String oneCreation : TABLE_CREATION_SQLS){
sqLiteDatabase.execSQL(oneCreation);
}
}
Ma che arriva un altro problema: dopo aver aggiunto una nuova tabella, e installare la nuova versione della app con un vecchio già installata, la nuova tabella non lo farà essere creato, poiché l'esistenza del vecchio database impedirà il richiamo della funzione onCreate. Quindi l'utente deve prima disinstallare l'app e installare completamente l'app. Il Database_Version aiuta, sembra Android non si eseguire la funzione onCreate se e solo se l'un database existin con lo stesso nome e lo stesso Database_Version
ok, grazie, si fa a sapere l'effetto collaterale di avere uno per ogni tavolo? O è solo per avere un singolo file da modificare? –
Controlla la risposta modificata –
grazie questo è abbastanza esplicativo, leggerò al più presto! : D: D –