CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gioviale1956 con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: bluemask con ben 8 Thanks ricevuti negli ultimi sette giorni
Utente del mese: carotix con ben 24 Thanks ricevuti nell'ultimo mese

Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 19 su 19
Discussione:

Creazione database Sqlite per android...creazione e consigli

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. #11
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Non hai copiato il mio codice visto che nel mio le variabili sono prima del costruttore e nel tuo invece stanno dopo.

  2.  
  3. #12
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    61

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ho provato a far cosi.. Visto che mi dava ugualmente errori

  4. #13
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Per quello che vedo, apparte l'annotazione che ti ho fatto, non ci sono errori. Hai provato a fare un Clean? Il progetto te lo fa compilare? Puoi postare tutta la classe?

  5. #14
    Baby Droid


    Registrato dal
    Apr 2014
    Messaggi
    14

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    La classe che estende sqliteopenhelper ti serve per creare e aggiornare il tuo database, poi ne devi creare un altra che ti permetta in maniera semplice di eseguire le operazioni (come aggiungere o eliminare un record) sul tuo db.

    questo è un esempio della classe che devi creare che ho trovato su internet per un database di contatti:
    codice:
    import android.content.ContentResolver;
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.provider.ContactsContract;
     
    public class DbAdapter {
    
             
      private Context context;
      private SQLiteDatabase database;
      private DatabaseHelper dbHelper;
     
      // Database fields
      private static final String DATABASE_TABLE      = "contact";
     
      public static final String KEY_CONTACTID = "_id";
      public static final String KEY_NAME = "name";
      public static final String KEY_SURNAME = "surname";
      public static final String KEY_SEX = "sex";
      public static final String KEY_BIRTH_DATE = "birth_date";
     
      public DbAdapter(Context context) {
        this.context = context;
      }
     
      public DbAdapter open() throws SQLException {
        dbHelper = new DatabaseHelper(context);
        database = dbHelper.getWritableDatabase();
        return this;
      }
     
      public void close() {
        dbHelper.close();
      }
     
      private ContentValues createContentValues(String name, String surname, String sex, String birth_date ) {
        ContentValues values = new ContentValues();
        values.put( KEY_NAME, date );
        values.put( KEY_SURNAME, flag_send_sms );
        values.put( KEY_SEX, text_send_sms );
        values.put( KEY_BIRTH_DATE, date_sent_sms );
         
       return values;
      }
             
      //create a contact
      public long createContact(String name, String surname, String sex, String birth_date ) {
        ContentValues initialValues = createContentValues(name, surname, sex, birth_date);
        return database.insertOrThrow(DATABASE_TABLE, null, initialValues);
      }
     
      //update a contact
      public boolean updateContact( long contactID, String name, String surname, String sex, String birth_date ) {
        ContentValues updateValues = createContentValues(name, surname, sex, birth_date);
        return database.update(DATABASE_TABLE, updateValues, KEY_ CONTACTID + "=" + contactID, null) > 0;
      }
                     
      //delete a contact     
      public boolean deleteContact(long contactID) {
        return database.delete(DATABASE_TABLE, KEY_ CONTACTID + "=" + contactID, null) > 0;
      }
     
      //fetch all contacts
      public Cursor fetchAllContacts() {
        return database.query(DATABASE_TABLE, new String[] { KEY_CONTACTID, KEY_NAME, KEY_SURNAME, KEY_SEX, KEY_BIRTH_DATE}, null, null, null, null, null);
      }
       
      //fetch contacts filter by a string
      public Cursor fetchContactsByFilter(String filter) {
        Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] {
                                        KEY_CONTACTID, KEY_NAME, KEY_SURNAME, KEY_SEX, KEY_BIRTH_DATE },
                                        KEY_NAME + " like '%"+ filter + "%'", null, null, null, null, null);
             
        return mCursor;
      }
    Comunque io ti consiglio di utilizzare i content provider come ho fatto anche io per la mia applicazione anche se hai bisogno di un po' più di lavoro, così puoi consultare il db con un cursor loader (una specie di async task), comunque trovi tutto quello che ti serve in questa guida:
    http : / /www . anddev . it / index.php?topic=8538.0

    Riguardo al discorso sulla data, io ho salvato la data come fosse testo e per formattarla ho usato questa classe:
    codice:
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    public class FormattedDateTime {
        public static String getDateTime(){
            Calendar c = Calendar.getInstance();
            SimpleDateFormat sdf = new SimpleDateFormat("d/M/yy H:m:s");
            String dateTime = sdf.format(c.getTime());
            return dateTime;
        }
    }
    Ultima modifica di Caco85; 10-07-14 alle 22:09

  6. #15
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    61

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Unhappy

    non ho capito questo:
    private ContentValues createContentValues(String data, String ora, String valorestella) {
    ContentValues values = new ContentValues();
    values.put( KEY_NAME, date );
    values.put( KEY_SURNAME, flag_send_sms );
    values.put( KEY_SEX, text_send_sms );
    values.put( KEY_BIRTH_DATE, date_sent_sms );

    ho preso spunto da questo link http ://www. html.it/articoli/la-gestione-dei-database-in-android-3/
    cosa sono date, flag_send_sms ect... mi chiede di inizilizzarle... ma dove?
    values.put?

    questo è il mio codice..
     
    1
    import android.content.ContentResolver;
    2
    import android.content.ContentValues;
    3
    import android.content.Context;
    4
    import android.database.Cursor;
    5
    import android.database.SQLException;
    6
    import android.database.sqlite.SQLiteDatabase;
    7
    import android.provider.ContactsContract;
    8
     
    9
    public class DbAdapter { //L’adapter fornisce tutta una serie di metodi che, una volta testati opportunamente, permettono al programmatore di concentrare le proprio energie sugli aspetti importanti dell’applicativo e non sulla creazione o sulla modifica di un record del database.
    10
      @SuppressWarnings("unused")
    11
      private static final String LOG_TAG = DbAdapter.class.getSimpleName();
    12
             
    13
      private Context context;
    14
      private SQLiteDatabase database;
    15
      private DatabaseHelper dbHelper;
    16
     
    17
      // Database fields
    18
      private static final String DATABASE_TABLE      = "sigaretta";
    19
     
    20
      public static final String KEY_id = "_id";
    21
      public static final String KEY_Data = "data";
    22
      public static final String KEY_Ora = "ora";
    23
      public static final String KEY_Valorestella = "valorestella";
    24
     //In ambiente Android il context è un elemento fondamentale che utilizzeremo spesso nelle nostre applicazioni: è una classe astratta di cui l’implementazione è fornita dal sistema. Il context permette di accedere alle risorse specifiche dell’applicazione, come ad esempio le activity, gli intent, ecc
    25
      public DbAdapter(Context context) {
    26
        this.context = context;
    27
      }
    28
     
    29
      public DbAdapter open() throws SQLException {
    30
        dbHelper = new DatabaseHelper(context);
    31
        database = dbHelper.getWritableDatabase();
    32
        return this;
    33
      }
    34
     
    35
      public void close() {
    36
        dbHelper.close();
    37
      }
    38
     
    39
      private ContentValues createContentValues(String data, String ora, String valorestella) {
    40
        ContentValues values = new ContentValues();
    41
        values.put( KEY_Data, date );
    42
        values.put( KEY_Ora, flag_send_sms );
    43
        values.put( KEY_Valorestella, text_send_sms );
    44
         
    45
       return values;
    46
      }
    47
             
    48
      //create a contact
    49
      public long createContact(String data, String ora, String valorestella) {
    50
        ContentValues initialValues = createContentValues(data,ora,valorestella);
    51
        return database.insertOrThrow(DATABASE_TABLE, null, initialValues);
    52
      }
    53
     
    54
      //update a contact
    55
      public boolean updateContact( long id, String data, String ora, String valorestella ) {
    56
        ContentValues updateValues = createContentValues(data, ora, valorestella);
    57
        return database.update(DATABASE_TABLE, updateValues, KEY_id + "=" + id, null) > 0;
    58
      }
    59
                     
    60
      //delete a contact      
    61
      public boolean deleteContact(long id) {
    62
        return database.delete(DATABASE_TABLE, KEY_id + "=" + id, null) > 0;
    63
      }
    64
     
    65
      //fetch all contacts
    66
      public Cursor fetchAllContacts() {
    67
        return database.query(DATABASE_TABLE, new String[] { KEY_id, KEY_Data, KEY_Ora, KEY_Valorestella}, null, null, null, null);
    68
      }
    69
       
    70
      //fetch contacts filter by a string
    71
      public Cursor fetchContactsByFilter(String filter) {
    72
        Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] {
    73
                                        KEY_id, KEY_Data, KEY_Ora, KEY_Valorestella},
    74
                                        KEY_Data + " like '%"+ filter + "%'", null, null, null, null);
    75
             
    76
        return mCursor;
    77
      }}
    Ultima modifica di xixietto; 11-07-14 alle 16:36

  7. #16
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    61

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Question

    come faccio a leggere i valore presenti nel database?
    Ultima modifica di xixietto; 12-07-14 alle 23:36

  8. #17
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Quote Originariamente inviato da xixietto Visualizza il messaggio
    come faccio a leggere i valore presenti nel database?
    Te lo avevo già detto qui come si fa. In altre parole fai una query che seleziona tutto dalla tabella e tramite un while prendi i valori uno ad uno e li inserisci in un ArrayList, nel mio caso di tipo String ma se devi recuperare molti valori devi usare un Oggetto.

  9. #18
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    61

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da Crotan Visualizza il messaggio
    Te lo avevo già detto qui come si fa. In altre parole fai una query che seleziona tutto dalla tabella e tramite un while prendi i valori uno ad uno e li inserisci in un ArrayList, nel mio caso di tipo String ma se devi recuperare molti valori devi usare un Oggetto.
    sapresti aiutarmi a modificare questo codice?
    e farlo diventare un arraylist....
    in principio questo codice mi mostra solo il numero di record presenti...
    ora vorrei che mi mostrasse i valori dei record...

    private void recuperaNumeroRecord() {
    //Chiediamo l'accesso al db
    SQLiteDatabase db = mMioDbHelper.getReadableDatabase();

    //Query per recuperare il numero di righe presenti nel db
    final String sql = "SELECT COUNT(*) FROM tabella";

    Cursor c = db.rawQuery(sql, null);

    if(c.moveToFirst()) {
    tView.setText(c.getString(0));
    }
    }

  10. #19
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    61

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    sapete come si può inviare al database sqlite di android...
    i valori presi da un metodo?
    io ho provato così.. ma è errato
    ...........
    contentValues.put("data", data().getText().toString());
    ...........

Pagina 2 di 2 primaprima 12

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