Autore Topic: Passaggio dati complessi tra activity.  (Letto 822 volte)

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Passaggio dati complessi tra activity.
« il: 31 Gennaio 2012, 18:11:02 CET »
0
Salve a tutti, sono un utente alle prime armi e sto leggendo parecchi manuali e tutorial su android da un paio di settimane.
Ho scoperto casualmente questo forum e mi sono iscritto all'istante. =)
Vorrei chiedervi una cosa sperando che non sia già stata spiegata da nessuna parte. In caso contrario deletate questo post! ^^

Vi spiego quello che devo fare. Non voglio che mi scriviate il codice, ma vorrei solo qualche dritta su come realizzarlo.
Sto cercando di creare una app che prenda dei dati da internet, che li elabori e che li rimandi indietro.
Quello che vorrei sapere è come far comunicare le varie activity per fare in modo che questi dati vengano modificati.

Ho letto questo tutorial [facile] Passaggio di dati tra un'activity ed un'altra - Android Developers Italia però non mi basta perché io avrò dei dati molto più complessi di un semplice int, String e Person. Io riceverò un file xml contenente dei dati, dovrò processarlo, creare una vista appropriata, permettere al client di inserire quello che desidera, creare un xml con le scelte del client e mandarlo indietro.

Ho programmato parecchio in java e credo che la migliore soluzione sia quella di creare una classe (tipo la Person della guida) con un costruttore pronto a ricevere tutti i dati presi dall'xml.

Posso creare una mia classe, chiamiamola object_xml, mettendola nelle src e usandola poi tra le varie activity come visto nell'esempio del tutorial? Devo aggiornare il manifest?

Grazie per l'aiuto! ^^

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:Passaggio dati complessi tra activity.
« Risposta #1 il: 31 Gennaio 2012, 18:31:58 CET »
+1
Puoi usare una classe custom da passare tra activity.  Deve implementare. La serializzazione di Android chiamata parcellable.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Passaggio dati complessi tra activity.
« Risposta #2 il: 31 Gennaio 2012, 18:33:39 CET »
0
Implementa l'interfaccia Parcelable nella tua classe Person ;)

Edit: mi hanno anticipato :D

Inviato dal mio HTC Desire usando Tapatalk
« Ultima modifica: 31 Gennaio 2012, 18:35:23 CET da Ricky` »

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Passaggio dati complessi tra activity.
« Risposta #3 il: 31 Gennaio 2012, 18:35:46 CET »
0
Ho trovato questa guida che mi sta aiutando parecchio [facile] Aggiornare ListView popolata da un cursor + download e parsing JSON - Android Developers Italia .

Parcelable? Parcelable | Android Developers <- questo?

Adesso ci provo!

Questo forum è pazzesco ragazzi... ^_^

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:Passaggio dati complessi tra activity.
« Risposta #4 il: 31 Gennaio 2012, 20:31:50 CET »
0
Si, il parcelable è proprio quello

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Passaggio dati complessi tra activity.
« Risposta #5 il: 01 Febbraio 2012, 17:50:09 CET »
0
Ok credo di aver fatto tutto correttamente e grazie a questo tutorial [facile-medio] Importare dati da una sorgente JSON - Android Developers Italia ho rivoluzionato quasi tutto! Ero indeciso tra xml e json, e dopo vari tentativi mi sono reso conto che Json è decisamente meglio.

Ora avrei una piccola domandina. Tutte le classi che ho creato nel mio progetto e che userò nelle activity le devo aggiungere all'android manifest? Perché il logcat mi segnala degli errori strani. Tipo ho scritto il mio json in un file. Ho usato il metodi base che offre java per la lettura e scrittura da file e mi dice:

02-01 16:39:43.789: W/System.err(353): java.io.FileNotFoundException: /home/.../workspace/kApp/JsonString.json (No such file or directory)

Quando in realtà il file esiste eccome!
Dovrei aver importato tutte le librerie necessarie. L'unica cosa che non ho fatto è aggiungere le classi che ho creato al mio manifest. E' necessario farlo? Avreste qualche guida a riguardo da consigliarmi?

Grazie

P.S.
Tra l'altro ho scoperto l'esistenza del logcat grazie alle varie firme dei moderatori.  :-P E' una cosa utilissima!
« Ultima modifica: 01 Febbraio 2012, 18:12:36 CET da Mr.Donut »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Re:Passaggio dati complessi tra activity.
« Risposta #6 il: 01 Febbraio 2012, 20:20:11 CET »
0

Ho usato il metodi base che offre java per la lettura e scrittura da file e mi dice:

02-01 16:39:43.789: W/System.err(353): java.io.FileNotFoundException: /home/.../workspace/kApp/JsonString.json (No such file or directory)

Quando in realtà il file esiste eccome!
Dovrei aver importato tutte le librerie necessarie. L'unica cosa che non ho fatto è aggiungere le classi che ho creato al mio manifest. E' necessario farlo? Avreste qualche guida a riguardo da consigliarmi?

Sembra tanto che tu stia cercando di accedere a un file che hai sul PC. Ovviamente però non ci puoi accedere, l'emulatore accede solo al suo filesystem.

Inviato dal mio HTC Desire usando Tapatalk

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Passaggio dati complessi tra activity.
« Risposta #7 il: 01 Febbraio 2012, 20:54:50 CET »
0
Sembra tanto che tu stia cercando di accedere a un file che hai sul PC. Ovviamente però non ci puoi accedere, l'emulatore accede solo al suo filesystem.

Ottimo non lo sapevo questo! Purtroppo non è ancora funzionante il server da cui prendere la stringa e allora avevo pensato di leggerla da file... Non ne avevo idea che non potesse accedervi l'emulatore...
Adesso provo in un altro modo >__<

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Passaggio dati complessi tra activity.
« Risposta #8 il: 01 Febbraio 2012, 21:01:29 CET »
0
Adesso provo in un altro modo >__<

Copialo nella cartella res/raw :)
Poi per accederci basta che chiami context.getAssets().open("filename.ext");

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Passaggio dati complessi tra activity.
« Risposta #9 il: 01 Febbraio 2012, 21:39:21 CET »
0
Copialo nella cartella res/raw :)
Poi per accederci basta che chiami context.getAssets().open("filename.ext");

Mmmh ma cosa sarebbe tutta quella sfilza di roba che hai scritto? =)

Comunque senza impazzire mi sono scritto la stringa direttamente nel codice e amen... Però secondo me sbaglio qualche cosa nell'android manifest...
Bisogna per caso mettere tutte le classi che si usano nella mia app?
Mi sono creato delle classi per fare in modo che la classe gson, attraverso i suoi metodi, mi crei un oggetto su cui possa lavorare. Tutte queste classi le devo inserire nel manifest?
Devo inserire per caso anche la libreria o mi basta importarla come jar esterno nelle properties?

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:Passaggio dati complessi tra activity.
« Risposta #10 il: 01 Febbraio 2012, 22:44:12 CET »
0
Ciao,

nel manifest devi mettere le Activity che usi, non le singoli classi.

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Passaggio dati complessi tra activity.
« Risposta #11 il: 01 Febbraio 2012, 22:52:22 CET »
0
Ciao,

nel manifest devi mettere le Activity che usi, non le singoli classi.

Si grazie l'avevo appena trovato sul manuale...

Devo assolutamente ricominciare da capo... Ho troppi casini che si stanno manifestando....

Grazie a tutti per l'aiuto!