Autore Topic: Condivisione variabile tra Activity di un TabLayout  (Letto 907 volte)

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Condivisione variabile tra Activity di un TabLayout
« il: 17 Novembre 2010, 15:24:21 CET »
0
Ciao a tutti!
Sto sviluppando un'applicazione e uso un TabLayout di tre activity.
Quando si cambia Tab, vorrei che una variabile locale sia passata agli altri activity della TabLayout.
Qualcuno mi sa dire come posso gestire quella cosa?

In realtà ho pensato che potevo creare un Service o BroadcastIntent ma non sto trovando niente in giro che mi spieghi bene come usare i broadcast.

N.B. So usare gli intent tra le Activity ma in questo caso, cambiano il Tab non so quale activity si apre quindi non so a chi mandare l'intent; cmq vorrei che la mia variabile sia condivisa con gli altri Activity del TabLayout una volta creata (intento dire una volta la mia variabile creata!).

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #2 il: 18 Novembre 2010, 01:06:02 CET »
0
Questo potrebbe andare?
Salvataggio dello stato tra più Activity (aka variabili globali in Android) - Android Developers Italia

Grazie,...
è veramente interessante sapere questa cosa. Mi è stato utile anche se penso che avrei potuto gestire il mio problema in modo più elegante usando magari un BroadcastIntent o dei Services. Solo che non ho ancora trovato modo di capire bene come funzionano questi ultimi. Ha per caso qualche idea di dove potrei imparare a usare i BroadcastIntent e/o service?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #3 il: 18 Novembre 2010, 01:47:51 CET »
0
Scomodare i services per una variabile da condividere tra più activity non mi sembra affatto una soluzione elegante :D
Puoi comunque provare a dare uno sguardo qui: Service | Android Developers
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #4 il: 18 Novembre 2010, 02:24:20 CET »
0
Scomodare i services per una variabile da condividere tra più activity non mi sembra affatto una soluzione elegante :D
Puoi comunque provare a dare uno sguardo qui: Service | Android Developers
Hai ragione per i services. E i BroadcastIntent invece?? Pensi che siano anch'essi inappropriato per il problema?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #5 il: 18 Novembre 2010, 02:29:11 CET »
0
Utilizzare un BroadcastReceiver per una variabile da condividere mi sembra anche questo esagerato, meno di un servizio, ma sempre esagerato.
Se vuoi una soluzione alternativa alla variabile "globale" potresti utilizzare le SharedPreferences: Data Storage | Android Developers.

Al tuo posto utilizzerei la classe MyApplication, vediamo come la pensano gli altri :)
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline fedepaol

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: +7
    • fedepaol
    • Mostra profilo
    • My tech addiction
  • Dispositivo Android:
    Samsung Galaxy
  • Play Store ID:
    Federico Paolinelli
  • Sistema operativo:
    macosx
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #6 il: 18 Novembre 2010, 09:57:43 CET »
0
Estendere la classe application, sebbene documentato, non e' il modo migliore per avere oggetti globali, come suggerito in risposta ad una mia domanda dalla signora Hackborn qua https://groups.google.com/group/android-developers/browse_thread/thread/eea70e90628b2f4/05d6852644ee2b74?hl=it#05d6852644ee2b74

Il suggerimento e':se c'e' bisogno di un singleton, usate un singleton.

Aggiungo anche: la shared preferences e' una alternativa, ma occhio che in quel caso il dato e' persistente, e quindi te lo ritroverai nelle prossime ripartenze (che magari e' un plus, ma dipende da quello che devi fare).

Hope this helps,

Federico
« Ultima modifica: 18 Novembre 2010, 10:08:25 CET da fedepaol »
follow me on twitter @fedepaol

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #7 il: 18 Novembre 2010, 11:58:01 CET »
0
Estendere la classe application, sebbene documentato, non e' il modo migliore per avere oggetti globali, come suggerito in risposta ad una mia domanda dalla signora Hackborn qua https://groups.google.com/group/android-developers/browse_thread/thread/eea70e90628b2f4/05d6852644ee2b74?hl=it#05d6852644ee2b74

Il suggerimento e':se c'e' bisogno di un singleton, usate un singleton.

Aggiungo anche: la shared preferences e' una alternativa, ma occhio che in quel caso il dato e' persistente, e quindi te lo ritroverai nelle prossime ripartenze (che magari e' un plus, ma dipende da quello che devi fare).

Hope this helps,

Federico

A dire vero non ho capito bene perché sconsigliano l'uso di Application...

Come si creerebbe un singleton?

Shared preferences non va bene con quello che voglio fare, non è utile che la mia variabile sia così persistente. Viene modificata spesso in funzione di ciò che succede alle Activity.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #8 il: 18 Novembre 2010, 12:25:37 CET »
0
A dire vero non ho capito bene perché sconsigliano l'uso di Application...

Sostanzialmente dice che utilizzando una classe costruita secondo il singleton pattern hai la possibilità di demandare la creazione delle variabili che vuoi rendere "globali" quando effettivamente ti servono :)

Citazione
Come si creerebbe un singleton?

http://it.wikipedia.org/wiki/Singleton#Esempio:_Java

Offline fedepaol

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: +7
    • fedepaol
    • Mostra profilo
    • My tech addiction
  • Dispositivo Android:
    Samsung Galaxy
  • Play Store ID:
    Federico Paolinelli
  • Sistema operativo:
    macosx
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #9 il: 18 Novembre 2010, 12:36:15 CET »
0
Sostanzialmente dice che utilizzando una classe costruita secondo il singleton pattern hai la possibilità di demandare la creazione delle variabili che vuoi rendere "globali" quando effettivamente ti servono :)

Esattamente, che in ottica di sistema con poche / meno risorse proprio schifo non fa.
follow me on twitter @fedepaol

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #10 il: 18 Novembre 2010, 12:40:49 CET »
0
Esattamente, che in ottica di sistema con poche / meno risorse proprio schifo non fa.

Vero.
Però si parla anche del fatto che estendendo Application hai la possibilità di intercettare il metodo onLowMemory che in alcune situazione può servire.

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Re:Condivisione variabile tra Activity di un TabLayout
« Risposta #11 il: 18 Novembre 2010, 13:07:29 CET »
0
Sostanzialmente dice che utilizzando una classe costruita secondo il singleton pattern hai la possibilità di demandare la creazione delle variabili che vuoi rendere "globali" quando effettivamente ti servono :)

http://it.wikipedia.org/wiki/Singleton#Esempio:_Java

Vedendo come è fatto un singleton credo che non mi sarà utile visto che vorrei anche poter modificare il valore della variabile comune magari con un semplice setter... è solo una variabile di tipo int che voglio condividere tra le mie Activity.

Per quanto riguarda l'uso delle risorse, estendo Application, non è che ne sto creando una vera e propria, credo che l'applicazione è sempre unica ma con una variabile in più no ?? O forse ho capito male come funziona la cosa al livello dell'uso delle risorse!!