Le android.os.Message
utilise a Bundle
pour envoyer avec sa méthode sendMessage. Par conséquent, est-il possible de mettre un à l' HashMap
intérieur d'un Bundle
?
android
dictionary
bundle
Marcus Toepper
la source
la source
Réponses:
essayez comme:
et en deuxième activité
parce que Hashmap implémente par défaut
Serializable
afin que vous puissiez le transmettre en utilisantputSerializable
dans Bundle et entrer dans une autre activité en utilisantgetSerializable
la source
Selon la doc ,
Hashmap
implémenteSerializable
, donc vous pouvezputSerializable
je suppose. Est-ce que tu l'as essayé ?la source
Remarque: si vous utilisez une AppCompatActivity, vous devrez appeler la méthode
protected void onSaveInstanceState(Bundle outState) {}
( NOTpublic void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {}
).Exemple de code ...
Stockez la carte:
Et recevez-le dans onCreate:
Désolé si c'est une sorte de réponse en double - peut-être que quelqu'un la trouvera utile. :)
la source
Si vous souhaitez envoyer toutes les clés du bundle, vous pouvez essayer
la source
la source
J'utilise mon implémentation kotlin de Parcelable pour y parvenir et jusqu'à présent, cela fonctionne pour moi. C'est utile si vous voulez éviter le sérialisable lourd.
Aussi pour que cela fonctionne, je recommande de l'utiliser avec ces
Déclaration
Utilisation
écrire
lis
N'oubliez pas que si votre carte
K,V
n'est pas parcellisée par défaut, elle doit implémenterParcelable
la source
À Kotlin:
la source