Autore Topic: Activity con strano "vizio di memoria"  (Letto 677 volte)

Offline AntonioE.

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Microsoft Windows 7 x64
Activity con strano "vizio di memoria"
« il: 11 Maggio 2012, 14:18:10 CEST »
0
Salve, vi faccio un quadro per capire la situazione:
La mia applicazione interroga un db remoto per visualizzare, proporre e consultare in locale sondaggi.
Ho un'activity A nella quale c'è un button.
Cliccando questo button si accede ad un'activity B con diversi button, uno per ogni categoria ( Sport, politica, economia ecc ecc )
Cliccando un qualsiasi button dell'activity B si accede ad una terza activity C composta da un listview, nel quale ad ogni riga corrisponde un quesito di un diverso sondaggio.

Ora ... se la sequenza di navigazione è A --> B scelgo una categoria --> C --> leggo le domande --> torno dietro a B --> torno dietro ad A e ripeto il procedimento tutto ok.
Se invece faccio A --> B scelgo una categoria --> C leggo domanda --> torno a B --> scelgo altra categoria categoria, nel list view oltre alle domande della categoria appena scelta restano anche quelle della scelta precedente.

I dati ( ottenuti nell'activity B tramite richiesta post, servita da uno script php sul server ) li passo tramite i classici put/getExtra.
Ho provato ad usare il metodo removeExtra ma non ha funzionato. Ho provato a resettare l'adapter che passo per creare la list view ma non ha funzionato, ho provato ad impostarlo a null e crasha ... cosa sto dimenticando?
« Ultima modifica: 11 Maggio 2012, 14:22:48 CEST da AntonioE. »
Non c'è cattivo più cattivo di un buono che diventa cattivo

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Activity con strano "vizio di memoria"
« Risposta #1 il: 11 Maggio 2012, 14:27:29 CEST »
0
A me sembra che l'activity C resta aperta e quando ci torni i dati sono in qualche modo sbagliati.
I numeri contano molto di più del seme.

Offline AntonioE.

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Microsoft Windows 7 x64
Re:Activity con strano "vizio di memoria"
« Risposta #2 il: 11 Maggio 2012, 15:02:59 CEST »
0
Ma in tal caso non dovrebbe rimanere anche quando torno dietro di 2 activity?
Non c'è cattivo più cattivo di un buono che diventa cattivo

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Activity con strano "vizio di memoria"
« Risposta #3 il: 11 Maggio 2012, 15:27:42 CEST »
0
Ma in tal caso non dovrebbe rimanere anche quando torno dietro di 2 activity?

Il problema non e' quando torni indietro ma quando vai avanti. Ma forse mi sbaglio non ho nulla su cui basarmi (codice).
Potrebbe anche essere che hai implementato male, tipo che aggiungi i dati a quelli vecchi, ma come detto possono essere mille cose.
Se metti un po' di codice magari possiamo capire di piu'.
I numeri contano molto di più del seme.

Offline AntonioE.

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Microsoft Windows 7 x64
Re:Activity con strano "vizio di memoria"
« Risposta #4 il: 11 Maggio 2012, 16:23:53 CEST »
0
questo è un pezzo del codice dell'activity B, tralascio il prelievo dei dati e l'inserimento nell'arraylist "sondarray", riporto giusto quello che interessa al push di uno dei button riguardanti le categorie

Citazione
Intent intent = new Intent(getApplicationContext(), RiepilogoActivity.class);
                            String pkg = getPackageName();
                            intent.putExtra(pkg + ".sondarray", sondarray);
                           startActivity(intent);

questo invece è l'activity C, quella nella quale viene creata la list view "sporca"

Citazione
public class RiepilogoActivity extends Activity
{
   public void onCreate(Bundle savedInstanceState)
   {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.riepilogo);
      
      
      Intent intent = getIntent();
      String pkg = getPackageName();
      
      
      ArrayList<Sondaggio> sondarray = (ArrayList<Sondaggio>) intent.getSerializableExtra(pkg + ".sondarray");
      intent.removeExtra(pkg + ".sondarray");
      String[] cols = new String[sondarray.size()];

      for(int i=0;i<sondarray.size();i++)
      {
         cols = sondarray.get(i).getDomanda();
         
      }
      
      ListView list1 = (ListView)this.findViewById(R.id.riepilogoLV);
      ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, cols);
      list1.setAdapter(adapter);
      
      
   }
}
« Ultima modifica: 11 Maggio 2012, 16:25:50 CEST da AntonioE. »
Non c'è cattivo più cattivo di un buono che diventa cattivo

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Activity con strano "vizio di memoria"
« Risposta #5 il: 11 Maggio 2012, 16:33:07 CEST »
0
Personalmente ad occhio non vedo in modo lampante dove potrebbe essere il problema, l'unico dubbio che ho è che il sondarray che passi all'intent contenga le domande di etrambe le categorie... ma mi sembra strano che non te lo sia preparato come si deve prima di costruirti l'intent...

Gli output dei System.out che "storia" ci raccontano?

Offline AntonioE.

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Microsoft Windows 7 x64
Re:Activity con strano "vizio di memoria"
« Risposta #6 il: 11 Maggio 2012, 16:48:00 CEST »
0
Erano i reduci di alcuni messaggi che mi servivano da sentinella , devo ripulire un pò il codice ed iniziare ad usare i log lo so O:-)
Non c'è cattivo più cattivo di un buono che diventa cattivo

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Activity con strano "vizio di memoria"
« Risposta #7 il: 11 Maggio 2012, 17:08:42 CEST »
0
Erano i reduci di alcuni messaggi che mi servivano da sentinella , devo ripulire un pò il codice ed iniziare ad usare i log lo so O:-)

Immaginavo  :-) e chi non li mette?  :-P
Più che altro mi domandavo che sequenza di messaggi producono, giusto per avere un indizio in più su cosa succede (e cosa viene passato) tra un'invocazione e l'altra delle Activity.

Offline AntonioE.

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Microsoft Windows 7 x64
Re:Activity con strano "vizio di memoria"
« Risposta #8 il: 11 Maggio 2012, 23:06:59 CEST »
0
Mi servivano per risolvere un problema che avevo prima e che ora ho risolto.
All'ultima activity ci arrivavo con l'arraylist di size() = 0 e volevo vedere cosa arrivava ed in quale punto preciso perdevo il contenuto dell'arraylist.
Quello l'ho risolto comunque.
Non c'è cattivo più cattivo di un buono che diventa cattivo