0

J'ai un ArrayList de CustomInput objets et DataWrapper classe avec getter et setter pour le ArrayList. Je souhaite passer de DataWrapper de la classe Non-Activity à la classe Activity. J'ai essayé d'implémenter Serializable, mais je reçois Parcelable rencontré ioexception écriture objet sérialisable cause par NotSerializableException.Passer ArrayList de à Activité

DataWrapper.java

public class DataWrapper implements Serializable { 
    private static final long serialVersionUID = 1L; 
private ArrayList<CustomInput> customInputs; 

public void setFields(ArrayList<CustomInput> data) { 
    this.customInputs = data; 
} 

public ArrayList<CustomInput> getFields() { 
    return this.customInputs; 
} 
} 

classe non Activiy

public void showActivity() { 
    Intent intent = new Intent(request, ActivityKorak.class); 
    intent.putExtra("title", title); 
    DataWrapper dw = new DataWrapper(); 
    dw.setFields(fields); 
    intent.putExtra("data", dw); 

    request.startActivity(intent); 
} 

ActivityKorak.class-> onCreate()

Intent intent = getIntent(); 
    String title = intent.getStringExtra("title"); 
    DataWrapper dw = (DataWrapper) intent.getSerializableExtra("data"); 
    ArrayList<CustomInput> fields = dw.getFields(); 
+0

salut pourquoi vous créez la liste de tableau à l'intérieur de Serializable.It fonctionne automatiquement sous forme de tableau. – Saveen

+0

Si vous voulez faire avec Serializable alors je vais vous donner un exemple comment cela fonctionne – Saveen

+0

Je veux juste passer ArrayList à l'activité et je ne dois pas utiliser DataWrapper. – jelic98

Répondre

1

Pas besoin de créer une nouvelle classe DataWrapper.java. Car ArrayList est sérialisable.

classe non Activiy

public void showActivity() { 
    Intent intent = new Intent(request, ActivityKorak.class); 
    intent.putExtra("title", title); 
    intent.putExtra("data", fields); 

    request.startActivity(intent); 
} 

ActivityKorak.class-> onCreate()

Intent intent = getIntent(); 
    String title = intent.getStringExtra("title"); 
    DataWrapper dw = (DataWrapper) intent.getSerializableExtra("data"); 
    ArrayList<CustomInput> fields = dw.getFields(); 
0

salut s'il vous plaît vérifier la façon dont nous pouvons envoyer arraylist dans l'intention

ArrayList<HashMap<String, String>> aldata = new ArrayList<HashMap<String, String>>(); 

j'ai supposé ici des données est déjà ajouté dans votre arraylist, s'il vous plaît vérifier

Envoyer des données et commencer une autre activité,

Intent intent = new Intent(this,AbcActivity.class); 
intent.putExtra("aldata", aldata_TaxiLine); 
startActivity(intent); 

Obtenir des données dans votre prochaine activité,

ArrayList<HashMap<String, String>> aldata1; 

et appeler dans votre oncreate

aldata = (ArrayList<HashMap<String, String>>) getIntent() 
      .getSerializableExtra("aldata"); 

espérons que cela vous aidera.