Autore Topic: Sistema migliore per condividere un Json Object tra molteplici activity  (Letto 724 volte)

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Come da titolo, mi piacerebbe sapere quale metodo scegliereste per condividere un json object tra più activity?
I metodi che conosco sono i seguenti:

1) Creare il json Object extends Serializable.

2) ... extends Parcelable

3) ... extends Observable

4) ... extends Application

E' un oggettone complesso composto da 4 classi e in ogni activity devo poterlo aggiornare a piacere con le set.

Cosa mi consigliereste?

Grazie

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #1 il: 09 Febbraio 2012, 23:28:26 CET »
0
se è un jsonobject io sinceramente farei un toString() e poi un new JSONObject(stringa)....
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #2 il: 09 Febbraio 2012, 23:44:30 CET »
0
 
se è un jsonobject io sinceramente farei un toString() e poi un new JSONObject(stringa)....

No guarda non credo possa bastare.....

Ho Classe1 con 3 String e un ArrayList<Classe2>, Classe2 ha un tot di String e un ArrayList<Classe3>, Classe3 ha 2 int e un ArrayList<Classe4>, Classe4 ha 5 String.

Io recupero la mia stringa json dalla rete, la trasformo in un mega oggettone con tutti i campi e poi devo poter gestire quell'oggetto e poterlo passare tra più activity!

Non capisco proprio cosa tu intenda o.o

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #3 il: 09 Febbraio 2012, 23:52:06 CET »
0

No guarda non credo possa bastare.....

Ho Classe1 con 3 String e un ArrayList<Classe2>, Classe2 ha un tot di String e un ArrayList<Classe3>, Classe3 ha 2 int e un ArrayList<Classe4>, Classe4 ha 5 String.

Io recupero la mia stringa json dalla rete, la trasformo in un mega oggettone con tutti i campi e poi devo poter gestire quell'oggetto e poterlo passare tra più activity!

Non capisco proprio cosa tu intenda o.o
passi la parte in grassetto tra piu activity, il mega oggettone lo trasformi ogni volta
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #4 il: 10 Febbraio 2012, 01:08:21 CET »
0
Io farei una classe singleton dove memorizzare l'oggettone.

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:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #5 il: 10 Febbraio 2012, 15:25:45 CET »
0
Io farei una classe singleton dove memorizzare l'oggettone.

Inviato dal mio HTC Desire usando Tapatalk

Purtroppo non lo trovo, ma in una delle risposte dei vostri topic c'è scritto che i singleton non si possono usare in Android.

Comunque di tutte quelle proposte che ho scritto non ne andrebbe bene mezza visto che non le avete mai citate? o.o
Eppure qui [facile] Passaggio di dati tra un'activity ed un'altra - Android Developers Italia , qui [medio] MVC in Android - Android Developers Italia e qui Salvataggio dello stato tra più Activity (aka variabili globali in Android) - Android Developers Italia avete usato solo quei metodi... Io vorrei sapere solo le differenze tra di essi...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #6 il: 10 Febbraio 2012, 16:18:12 CET »
0
Purtroppo non lo trovo, ma in una delle risposte dei vostri topic c'è scritto che i singleton non si possono usare in Android.

Non credo che sia stato detto che non si può usare ma che in caso di garbage collection potrebbe succedere che la classe singleton venga "cestinata".
Il fatto è che anche se vai a salvare il tuo oggettone in una sottoclasse di Application non hai garanzia al 100% che non venga a un certo punto distrutto.
Quindi sostanzialmente puoi scegliere tra una delle due a tuo piacimento.

Il passaggio di dati tra activity con Parcelable/serializable ha senso se devi passare pochi dati da una activity ad un'altra ma inizia a diventare pesante e poco flessibile se questo dato devi passarlo tra molte activity.

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #7 il: 10 Febbraio 2012, 16:23:44 CET »
0
Non credo che sia stato detto che non si può usare ma che in caso di garbage collection potrebbe succedere che la classe singleton venga "cestinata".
Il fatto è che anche se vai a salvare il tuo oggettone in una sottoclasse di Application non hai garanzia al 100% che non venga a un certo punto distrutto.
Quindi sostanzialmente puoi scegliere tra una delle due a tuo piacimento.

Il passaggio di dati tra activity con Parcelable/serializable ha senso se devi passare pochi dati da una activity ad un'altra ma inizia a diventare pesante e poco flessibile se questo dato devi passarlo tra molte activity.

Ma usando un Singleton oppure la subclass di Application non si dovrebbe fare in modo di mantenere tra le activity un riferimento all'oggetto proprio per evitare che venga distrutto dalla garbage collection?
Perdonami se faccio molte domande, ma non vorrei creare il tutto e poi doverlo rifare da capo per motivi come questo....

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #8 il: 10 Febbraio 2012, 16:26:16 CET »
0
Si però in alcune situazione di memoria bassa e in cui la tua applicazioni non è in foreground alcuni dati potrebbero essere "cestinati".

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
Re:Sistema migliore per condividere un Json Object tra molteplici activity
« Risposta #9 il: 10 Febbraio 2012, 16:39:50 CET »
0
passi la parte in grassetto tra piu activity, il mega oggettone lo trasformi ogni volta

Perdonami Nicola_D, non avevo visto la tua risposta!
Vedendo la velocità in cui trasforma la stringa json in obj potrei anche fare così, però è conveniente per quello che devo fare?
Nelle varie activity devo creare una listview di dati estratti dalla stringa json e poi devo dare all'utente la possibilità di selezionarne alcuni e salvarmi da qualche parte le varie selezioni per poi rimandarle al server in forma di json modificato...

Purtroppo essendo la mia prima applicazione non ho veramente esperienza e solo i tutorial e i manuali non rispondono bene a queste domande...