Erreur AndroidRuntime: Parcel: impossible de regrouper la valeur

J’essaie de passer un HashMap à une nouvelle activité en utilisant la fonction intent.puExtra. En parcourant le débogueur, il semble que cela n’ajoute aucun problème à HashMap, mais lorsque startActivty () est appelée, je reçois une erreur d’exécution indiquant que cette plot: ne peut pas marshal la valeur com.appName.Liquor.

La liqueur est une classe personnalisée que j’ai créée, et je crois qu’elle est à l’origine du problème, en combinaison avec une HashMap. Si je passe une chaîne plutôt que ma HashMap, elle ne charge pas l’activité suivante.

Activité principale

lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { Ssortingng cat = ((TextView) view).getText().toSsortingng(); Intent i = new Intent(OhioLiquor.this, Category.class); i.putExtra("com.appName.cat", _liquorBase.GetMap()); startActivity(i); 

Classe de liqueur

 public class Liquor { public Ssortingng name; public int code; public Ssortingng category; private HashMap _bottles; public Liquor() { _bottles = new HashMap(); } public void AddBottle(Bottle aBottle) { _bottles.put(aBottle.size, aBottle); } } 

Sous-activité

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); HashMap map = (HashMap)getIntent().getSerializableExtra("com.appName.cat"); setListAdapter(new ArrayAdapter(this, R.layout.list_item, GetNames(map))); ListView lv = getListView(); lv.setTextFilterEnabled(true); 

Lorsque l’erreur d’exécution existe, elle n’entre jamais dans la classe de sous-activité. Donc, je suis sûr que le problème existe dans l’ajout du HashMap à l’intention, et basé sur l’erreur, je crois que ma classe Liquor est la cause, mais je ne peux pas comprendre pourquoi.

Votre aide sera très appréciée. Merci!

Votre HashMap lui-même est sérialisable mais la classe Bottle -elle sérialisable? Sinon, il ne sérialisera pas et lancera des erreurs à l’exécution. Faire en Bottle classe Bottle implémente l’interface java.io.Serializable