CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 19 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 33 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Usare ciò che ho nel Database SQlite

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Apr 2014
    Messaggi
    7

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Usare ciò che ho nel Database SQlite

    Ciao ragazzi, la mia intenzione è salvare i risultati di una partita con "Nome" - "punteggio" - "precisione" (inteso come percentuale di risposte esatte). E' un modo per imparare a fare determinate cose a piccoli passi, quindi un'app senza impegno. Tuttavia ora che ho capito come salvare nel database, non ho capito come fare per leggere ciò che ho salvato nel database in una nuova Activity (magari un'activity di nome "Records"). Sapreste darmi una mano?

    Questo è la mia classe DataBase
    x
     
    1
    public class MyDbHelper extends SQLiteOpenHelper {
    2
        //Nome del database che vogliamo creare
    3
        private static final String DB_NOME = "SCOREDATA";
    4
        private static final int DB_VERSIONE = 1;
    5
    6
        public MyDbHelper(Records context) {
    7
            super(context, DB_NOME, null, DB_VERSIONE);
    8
        }
    9
    10
        public void onCreate(SQLiteDatabase db) {
    11
            
    12
            String sql = "CREATE TABLE risultati";
    13
            sql += "(_id INTEGER PRIMARY KEY,";
    14
            sql += "nome TEXT NOT NULL,";
    15
            sql += "score TEXT,";
    16
            sql += "precisione TEXT);";
    17
    18
            //Eseguiamo la query
    19
            db.execSQL(sql);
    20
        }


    Ora la mia domanda finale è... come faccio a vedere ciò che ho salvato? quali metodi sapete dirmi per svolgere le attività più varie con un Database?
    ps. ho visto sul forum ma non ho trovato molto. Grazie a chiunque dovesse rispondermi

  2.  
  3. #2
    Androidiano L'avatar di iClaude76


    Registrato dal
    Oct 2012
    Località
    Trento
    Messaggi
    207
    Smartphone
    Galaxy S3, Nexus 7, G. Tab 2 7

    Ringraziamenti
    1
    Ringraziato 27 volte in 25 Posts
    Predefinito

    Quote Originariamente inviato da VAIZ Visualizza il messaggio
    Ciao ragazzi, la mia intenzione è salvare i risultati di una partita con "Nome" - "punteggio" - "precisione" (inteso come percentuale di risposte esatte). E' un modo per imparare a fare determinate cose a piccoli passi, quindi un'app senza impegno. Tuttavia ora che ho capito come salvare nel database, non ho capito come fare per leggere ciò che ho salvato nel database in una nuova Activity (magari un'activity di nome "Records"). Sapreste darmi una mano?

    Questo è la mia classe DataBase
    20
     
    1
    public class MyDbHelper extends SQLiteOpenHelper {
    2
        //Nome del database che vogliamo creare
    3
        private static final String DB_NOME = "SCOREDATA";
    4
        private static final int DB_VERSIONE = 1;
    5
    6
        public MyDbHelper(Records context) {
    7
            super(context, DB_NOME, null, DB_VERSIONE);
    8
        }
    9
    10
        public void onCreate(SQLiteDatabase db) {
    11
            
    12
            String sql = "CREATE TABLE risultati";
    13
            sql += "(_id INTEGER PRIMARY KEY,";
    14
            sql += "nome TEXT NOT NULL,";
    15
            sql += "score TEXT,";
    16
            sql += "precisione TEXT);";
    17
    18
            //Eseguiamo la query
    19
            db.execSQL(sql);
    20
        }


    Ora la mia domanda finale è... come faccio a vedere ciò che ho salvato? quali metodi sapete dirmi per svolgere le attività più varie con un Database?
    ps. ho visto sul forum ma non ho trovato molto. Grazie a chiunque dovesse rispondermi
    La risposta sarebbe lunga, per cui ti do solo alcune indicazioni generali:
    Aprire il database in lettura
    Fare una query con i metodi query o rawquery ottenendo un cursor
    Iterare sul cursor ricavando i campi che ti interessano...

  4. #3
    Senior Droid


    Registrato dal
    May 2010
    Località
    Rivoli
    Messaggi
    426

    Ringraziamenti
    6
    Ringraziato 48 volte in 47 Posts
    Predefinito

    Ciao, Vaiz.

    La risposta è un pò complessa....

    Innanzitutto creerei una classe di appoggio, con cui trasferire i dati, e la accoderei alla tua classe MyDbHelper :
    14
     
    1
    2
    public class MyDbHelper extends SQLiteOpenHelper {
    3
      ....
    4
    }
    5
    6
    public class Record_Risultati {
    7
      // in questa classe, i nomi delle variabili hanno lo stesso nome, lo stesso tipo e lo stesso ordine dei campi della tabella
    8
      // in questo modo posso mapparli 1:1
    9
      public int _id = 0;
    10
      public String nome = "";
    11
      public String score = "";
    12
      public String precisione = "";
    13
    }
    14


    ...come noterai, i nomi delle variabili dentro la classe Record_Risultati corrispondono ai campi del database.

    Poi aggiungerei un metodo alla tua classe MyDbHelper, che estragga un record specifico:
    37
     
    1
    2
    public class MyDbHelper extends SQLiteOpenHelper {
    3
      ....
    4
      
    5
      public Record_Risultati Get_Risultato_Form_Id(String id_da_cercare) {
    6
        // valore di ritorno
    7
        Record_Risultati un_risultato = new Record_Risultati();
    8
        // compongo la query
    9
        String Sql = " select * from risultati where _id = '" + id_da_cercare + "' ";
    10
        // provo ad eseguire la query
    11
            try {
    12
                Cursor cursor = getWritableDatabase().rawQuery(SqlStmt, null);
    13
                while (cursor.moveToNext() ) {
    14
                  // questo è superfluo, perchè l'ID già lo conosco: è il parametro id_da_cercare
    15
                  un_risultato._id = cursor.getInt(0);
    16
                  // da qui in poi, sono tutti valori che non conoscevo
    17
                  un_risultato.nome = cursor.getString(1);
    18
                  un_risultato.score = cursor.getString(2);
    19
                  un_risultato.precisione = cursor.getString(3);
    20
                  
    21
                }
    22
                // prima di uscire, chiudo il cursor, per non lasciare immondizia
    23
                cursor.close();
    24
            }
    25
            catch(Exception ex) {
    26
              // qui bisognerebbe gestire l'errore in modo più furbo
    27
                String error = ex.getMessage();
    28
            }
    29
            return un_risultato;
    30
      }
    31
    32
    }
    33
    34
    public class Record_Risultati {
    35
      ...
    36
    }
    37


    e poi, nella classe chiamante, cercherei di estrarre i risultati
    12
     
    1
    2
    ...
    3
    public Leggi_Risultato_Dal_DB(String id_da_leggere_dal_db) {
    4
      MyDbHelper un_helper = new MyDbHelper();
    5
      Record_Risultati record_letto_dal_db = un_helper.Get_Risultato_Form_Id(id_da_leggere_dal_db);
    6
      // ora posso mostrare i vari campi:
    7
      // - record_letto_dal_db.nome 
    8
      // - record_letto_dal_db.score
    9
      // - record_letto_dal_db.precisione
    10
    }
    11
    12


    Se ti ho confuso le idee a dovere, fammi una pernacchia
    Ultima modifica di TheCopacabanaMan; 28-05-14 alle 12:50

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy