JavascriptProva

domenica 16 ottobre 2016

Database nell'applicazione

Ecco, ho introdotto il database nell'applicazione.

Questa è la definizione della classe, ottenuta mediante l'estensione della classe SQLiteOpenHelper:
public class Helper extends SQLiteOpenHelper{
    public Helper(Context context) {
        super(context, "mioDatabase.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table tabella(tipo text, data integer)");
    }

    public void save(Record record){
        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put("tipo",record.tipo);
        values.put("data",record.data);
        db.insert("tabella",null,values);
    }

    public Cursor query(){
        SQLiteDatabase db=this.getWritableDatabase();
        Cursor crs=db.rawQuery("select * from tabella",null);
        crs.moveToFirst();
        return crs;
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}
Ed ecco come la uso nell'activity Seconda:
        bttInvio.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view) {

                Record record=new Record();
                record.tipo=tipo;
                Date dateOggi=new Date();
                Long lngDateOggi=dateOggi.getTime();
                record.data=lngDateOggi;
                helper.save(record);
con conversione del tipo Date in numero Long.
Ora, però, per fare le prove mi servono records con date differenti, e questo codice immette solo la data in cui viene fatta l'immissione, ossia la data di oggi.
Per questo, commentizzerò il codice e creerò un codice che immetterà date differenti scelte ad arte.

Ho anche aggiunto un costruttore a Record, in modo da costruire meglio le singole istanze.

Funziona, sì. Ho immesso i dati nel database.
                Record record;
                Date dat;
                Long n=0l;
                String[] str={"5/9/1961","13/6/1962","10/1/2003","10/2/1935"};
                for(int i=0;i<4;i++) {
                    SimpleDateFormat sdf = new SimpleDateFormat("dddd/MM/yyyy");
                    try {
                        dat = sdf.parse(str[i]);
                        n = dat.getTime();
                    } catch (Exception e) {
                    }
                    record = new Record("fuffa", n);
                    helper.save(record);
                }
Questo è il codice che mi sono costruito per mettere dati con date molto diverse. Andrà eliminato.
Ora devo passare alla visualizzazione dei dati, la parte più nuova...

Nessun commento:

Posta un commento