J'essaie de passer un objet d'une activité à une autre et je sais que je devrais utiliser Parcelable
ou Serializable
mais ma classe Object implémente déjà une interface. Y at-il un moyen de contourner cela?Comment passer un objet à une autre activité? Si l'objet implémente déjà une interface (il ne peut donc pas implémenter Parcelable)?
Répondre
Les objets peuvent implémenter plusieurs interfaces:
class MyClass implements Interface1, Parcelable {
// Implement each interface
}
Wow, je le savais. Désolé, merci beaucoup! Je marquerai votre réponse comme correcte une fois que je peux. – John
Bien sûr! Une classe peut implémenter plusieurs interfaces. Vous aurez juste besoin de séparer chacun par une virgule dans votre déclaration de classe, comme ça ...
public class YourClass implements interface1, interface2, interface3 {
//...
}
Un objet ne peut dépasser de plus d'une classe mais peut implémenter plusieurs interfaces.
Je pense que la bonne chose est juste d'utiliser Intent.putExtras() - où vous pouvez passer des types de données primitifs + des objets de type String, Bundle, Parcelable, Serializable. Vous utilisez simplement des paires clé/valeur. Et après cela, vous pouvez obtenir vos données par Intent.getExtras(). Tout est assez simple. Jetez également un coup d'oeil à ces liens, ils sont pour bigginers, mais vraiment utile: http://developer.android.com/guide/components/intents-filters.html et http://www.vogella.com/tutorials/AndroidIntent/article.html. Si le problème est plus profond, veuillez le décrire. Merci.
Parcelable and `Serializable` are the way but little complex. an easy solution is just use `Gson` or any other JSON library..
dans la première activité.
String objJson = new Gson().toJson(object);
intent.putExtra("key",objJson);
et dans votre deuxième activité
YourClass yourClass = new Gson().fromJson(getIntent().getStringExtra("key"),YourClass.class) ;
pour l'enregistrement de la bibliothèque Gson ce lien http://www.java2s.com/Code/Jar/g/Downloadgson222jar.htm
Un objet ne peut dépasser de plus d'une classe mais peut implémenter plusieurs interfaces. – thetonrifles