Passaggio parametri tra Activity

di il
5 risposte

Passaggio parametri tra Activity

Ciao a tutti, sono appena arrivato nel mondo Android e già me ne voglio andare.. no scherzo
devo passare un oggetto tra 2 activity ma compare un messaggio d'errore:

30. Intent pagina2=new Intent(MainActivity.this, ListaActivity.class); 
31. pagina2.putExtra("name", car);
riga 31 : the method putExtra(String, boolean) in the type Intent is not aplicable for the type (String, Car)
perchè è preimpostato boolean? non posso passare un oggetto car di tipo Car classe da me creata?

Carrello car1=getIntent().getExtras().get ?  ;
nella seconda Activity normalmente posso passare le Stringhe e recuperarle con getString ma se passo un oggetto scrivo get cosa?

5 Risposte

  • Re: Passaggio parametri tra Activity

    Per poter passare gli oggetti tramite un Bundle è necessario che la classe (in questo caso Car) implementi l'interfaccia Parcelable. I parcel, infatti, sono l'equivalente android degli oggetti serializzabili di java (il tutto è stato fatto per motivi di performance). Una volta fatto ciò puoi inserirli/ottenerli nel/dal Bundle con i metodi putParcelable e getParcelable
  • Re: Passaggio parametri tra Activity

    Sinceramente non ho capito molto, ho provato a fare un casting
    
    Carrello car=new Carrello();
    Parcelable parc=(Parcelable)car;
    Bundle b=new Bundle();
    b.putParcelable("car", parc);
    
    
    ma cosa dovrei inserire nell'interfaccia?
  • Re: Passaggio parametri tra Activity

    Prova a guardare questo articolo, dovrebbe essere abbastanza chiaro
  • Re: Passaggio parametri tra Activity

    Ho risolto cosi:
    nella MainActivity
    
    Carrello car=new Carrello();
    Intent s= new Intent(MainActivity.this, ListaActivity.class);
    s.putExtra("car", car);
    startActivity(s);
    
    poi come dicevi ho implementato la classe Carrello ma con Serealizable
    
    public class Carrello implements Serealizable() {...}
    
    nella classe ListaActivity poi un casting
    
    Intent i=getIntent();
    Carrello c=(Carrello)i.getSerializableExtra("car");
    
  • Re: Passaggio parametri tra Activity

    Come dicevo è preferibile usare i parcel per motivi di performance, però se la tua non è un'applicazione che necessita di un buon livello di performance allora va bene anche così!


    Sent from my iPhone using Tapatalk
Devi accedere o registrarti per scrivere nel forum
5 risposte