136 votes

Erreur AndroidRuntime: Colis: impossible de définir la valeur

Je suis en train de passer d'une table de hachage à une nouvelle activité à l'aide de l'intention.puExtra fonction. Parcourant le débogueur, il semble qu'elle ajoute de la table de hachage pas de problème, mais quand startActivty() est appelé, je reçois une erreur d'exécution, indiquant que le Colis: impossible de maréchal valeur com.appName.La liqueur.

L'alcool est une classe que j'ai créé, et je crois que c', en combinaison avec une table de hachage, est à l'origine du problème. Si je passe d'une chaîne plutôt que mon HashMap il charge l'activité suivante pas de problème.

L'Activité Principale

lv.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView<?> parent, View view,
      int position, long id) {

      String cat = ((TextView) view).getText().toString();
      Intent i = new Intent(OhioLiquor.this, Category.class);
      i.putExtra("com.appName.cat", _liquorBase.GetMap());
      startActivity(i);

La Liqueur De Classe

public class Liquor
{
public String name;
public int code;
public String category;

private HashMap<String, Bottle> _bottles;

public Liquor()
{
    _bottles = new HashMap<String, Bottle>();
}

public void AddBottle(Bottle aBottle)
{
    _bottles.put(aBottle.size, aBottle);
}
}

Sous-Activité De

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    HashMap<Integer, Liquor> map = (HashMap<Integer, Liquor>)getIntent().getSerializableExtra("com.appName.cat");

    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, GetNames(map)));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

Lorsque l'erreur d'exécution, il ne fait jamais dans la sous-activité de la classe. Donc je suis sûr que le problème existe dans l'ajout de la table de hachage de l'objet, et basé sur l'erreur, je crois que mon Liqueur de classe est la cause, mais je ne peux pas comprendre pourquoi.

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

316voto

naikus Points 11284

Votre HashMap est lui-même sérialisable, mais la classe Bottle -elle sérialisable? Sinon, il ne sera pas sérialisé et générera des erreurs lors de l'exécution. Faire en sorte que la classe Bottle implémente l'interface java.io.Serializable

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X