CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 35 Thanks ricevuti nell'ultimo mese

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

Parcelable

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
    Androidiano


    Registrato dal
    Aug 2010
    Messaggi
    229

    Ringraziamenti
    0
    Ringraziato 5 volte in 4 Posts
    Predefinito

    Scusa dhalia, tornando ai DB, dopo aver lanciato l'applicazione mi esce questo errore : "java.lang.IllegalArgumentException: column '_id' does not exist" eppure come puoi vedere dal codice qui sotto il campo _id è il primo campo che ho messo nella creazione del DB:
    SQLiteOpenHelper Helper = new SQLiteOpenHelper(this, "miodb2", null, 2){

    @Override
    public void onCreate(SQLiteDatabase db) {
    StringBuilder createQuery = new StringBuilder();
    createQuery.append("CREATE TABLE \"PERSONE\" (");
    createQuery.append("\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT,");
    createQuery.append("\"cognome\" TEXT NOT NULL,");
    createQuery.append("\"nome\" TEXT NOT NULL");
    createQuery.append(")");
    db.execSQL(createQuery.toString());
    }
    debuggando ho visto che si tratta di un errore che riscontra nel SimpleCursorAdapter in quanto nel array "String[] From" non indico il campo _id ma unicamente i campi cognome e nome e cioè
    public String[] colonne = new String[]{cognome,nome };
    se invece scrivo
    public String[] colonne = new String[]{id,cognome,nome };
    non mi da l'errore....però vedendo l'esempio di Carli chiamato TeamManager vedo che lui non lo mensiona proprio l'id nell'array che chiama FROMS....

    Spero di essermi spiegato

  2.  
  3. #12
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Quote Originariamente inviato da mimmog Visualizza il messaggio
    Scusa dhalia, tornando ai DB, dopo aver lanciato l'applicazione mi esce questo errore : "java.lang.IllegalArgumentException: column '_id' does not exist" eppure come puoi vedere dal codice qui sotto il campo _id è il primo campo che ho messo nella creazione del DB:


    debuggando ho visto che si tratta di un errore che riscontra nel SimpleCursorAdapter in quanto nel array "String[] From" non indico il campo _id ma unicamente i campi cognome e nome e cioè
    public String[] colonne = new String[]{cognome,nome };
    se invece scrivo
    public String[] colonne = new String[]{id,cognome,nome };
    non mi da l'errore....però vedendo l'esempio di Carli chiamato TeamManager vedo che lui non lo mensiona proprio l'id nell'array che chiama FROMS....

    Spero di essermi spiegato


    Hehe la tabella sembrerebbe esser apposto (anche se mi son chiesto perchè uno non si fa direttamente la stringa per semplicità ma details :P )..
    L'errore potrebbe esserci quando determini il cursore per il db.. come lo hai scritto?

    Cursor c = db.query(NomeTabella, TutteLeColonne,null,null,null,null,null);
    CursorAdapter a = (this, LayoutACuiApplicare, c, COLONNE_DA_SELEZIONARE, ID_ELEMENTI_DESTINAZIONE);

    Secondo me la cazzatina che hai fatto è quella di non aver specificato nel cursor e nel cursor adapter le colonne giuste
    Sbaglio? altrimenti altre soluzioni non mi vengon in mente..

  4. #13
    Androidiano


    Registrato dal
    Aug 2010
    Messaggi
    229

    Ringraziamenti
    0
    Ringraziato 5 volte in 4 Posts
    Predefinito

    Ecco qui il codice :
    public String cognome = "cognome";
    public String id = "_id";
    public String nome = "nome";
    public String[] colonne = new String[]{id,cognome,nome };
    public int[] textview_visual = new int[]{ R.id.TextViewCognome,R.id.TextViewNome };
    db = Helper.getWritableDatabase();
    cursore = db.query("PERSONE", colonne, null, null, null, null, null);
    adapter = new SimpleCursorAdapter(this, R.layout.row, cursore, colonne,textview_visual);

    Il problema è che l'id in grassetto non ci dovrebbe essere secondo l'esempio di Carli !!

  5. #14
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Quote Originariamente inviato da mimmog Visualizza il messaggio
    Ecco qui il codice :
    public String cognome = "cognome";
    public String id = "_id";
    public String nome = "nome";
    public String[] colonne = new String[]{id,cognome,nome };
    public int[] textview_visual = new int[]{ R.id.TextViewCognome,R.id.TextViewNome };
    db = Helper.getWritableDatabase();
    cursore = db.query("PERSONE", colonne, null, null, null, null, null);
    adapter = new SimpleCursorAdapter(this, R.layout.row, cursore, colonne,textview_visual);

    Il problema è che l'id in grassetto non ci dovrebbe essere secondo l'esempio di Carli !!
    Ahaha ma appunto se tu guardi bene l'esempio, vado un po' a memoria, lui dell'id se ne frega giustamente perchè uno con l'id non ci fa nulla in quell'esempio.. Allora che fa?
    Si definisce un arrayStringhe delle colonne che è quello che usa nel cursor (e lì ci va l'id), poi però si fa un altro array di stringhe delle colonne che gli interessano che son quelle che usa nel cursor adapter
    Quello che è "sbagliato" (giusto se ti interessano anche gli id) è questo:

    adapter = new SimpleCursorAdapter(this, R.layout.row, cursore, colonne,textview_visual);

    Lui mi pare faccia così:

    adapter = new SimpleCursorAdapter(this, R.layout.row, cursore, colonneInteressate,textview_visual);

    Prova a guardare bene
    Io purtroppo ora non ho sottomano il codice perchè son qui che ho appena finito di spalare neve hehe

  6. #15
    Androidiano


    Registrato dal
    Aug 2010
    Messaggi
    229

    Ringraziamenti
    0
    Ringraziato 5 volte in 4 Posts
    Predefinito

    Neve? A torino nevica?? Azz!!
    Scrivo dal galaxy quindi perdona gli errori..
    Carli crea un array COLUMNS nel quale mette _id ma questo array nuon viene utilizzato tutto nell'adapter infatti lui richiama un altro array che si chiama FROMS nel quale non cè l'id ma giustamente solo gli altri campi per questo mi stranisco quando io nell'adapter metto un array senza id ed il programma mi da errore!

    EDIT : Avevi ragione!!!! Nel cursor usa COLUMNS!!!! Sei grande! :-)
    Ultima modifica di mimmog; 01-12-10 alle 17:50

  7. #16
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Quote Originariamente inviato da mimmog Visualizza il messaggio
    Neve? A torino nevica?? Azz!!
    Scrivo dal galaxy quindi perdona gli errori..
    Carli crea un array COLUMNS nel quale mette _id ma questo array nuon viene utilizzato tutto nell'adapter infatti lui richiama un altro array che si chiama FROMS nel quale non cè l'id ma giustamente solo gli altri campi per questo mi stranisco quando io nell'adapter metto un array senza id ed il programma mi da errore!

    EDIT : Avevi ragione!!!! Nel cursor usa COLUMNS!!!! Sei grande! :-)
    Buahaha io son di Trento ahaha non Torino ahaha ecco perchè c'è tutta questa cavolo di neve!
    Guarda sinceramente son io che ringrazio te! Serve un sacco poter confrontarsi con qualcuno, capire errori, dare aiuti ecc
    Aiuta un sacco a capire e a tener sempre tutto fresco e alla mano

  8. #17
    Androidiano


    Registrato dal
    Aug 2010
    Messaggi
    229

    Ringraziamenti
    0
    Ringraziato 5 volte in 4 Posts
    Predefinito

    Sembra che ci siamo solo io e te sul forum!!! Ahahah ma cymon e copacabana dove sono?

    Cmq android è strano...ma perchè xreare un Bundle come contenitore di.un Parcelable quando si potrebbe passare un Parcellable direttamente? Bho, la risposta ci sará ma android è proprio strano! ! :-)
    Ultima modifica di mimmog; 01-12-10 alle 19:56

  9. #18
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Quote Originariamente inviato da mimmog Visualizza il messaggio
    Sembra che ci siamo solo io e te sul forum!!! Ahahah ma cymon e copacabana dove sono?

    Cmq android è strano...ma perchè xreare un Bundle come contenitore di.un Parcelable quando si potrebbe passare un Parcellable direttamente? Bho, la risposta ci sará ma android è proprio strano! ! :-)
    buahahaha si è un post nostro!
    Cmq secondo me la risposta è semplice:
    - nel bundle ci metti non solo cose parcellizzabili ma anche tipi semplici come int e string
    - in modo tipo hashmap il che è tanta roba, visto che semplifica un sacco poter identificare le cose tramite una stringa

    A:
    public static final String chiave = "p"

    B:
    b con un semplice A.chiave sa già qual'è la chiave che sa sarà sicuramente l'identificatore

    (ovviamente dopo devi implementare tutta l'architettura, questa è solo una soluzione per come aver un riferimento un po' solido hehe )

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