1
アクティビティ間でハッシュマップを送信しようとしていますが、常にnullです。Android hashmapがnullを返す
コード受信public HashMap <Integer, Integer> pickedPick = new HashMap <>();
Intent intent = new Intent(this, CharPick.class);
intent.putExtra("hashMap", pickedPick);
startActivity(intent);
::私はそれを使用して、それを返送しようとする前に、NPEを取得
Intent intent = getIntent();
pickedPick = (HashMap <Integer, Integer>) intent.getSerializableExtra("hashMap");
:
if (pickedPick != null && pickedPick.keySet().contains(clicked)){
pickedPick.remove(clicked);
pickedPick.put(clicked, picked);
} else if (pickedPick != null) {
pickedPick.put(clicked, picked);
}
intent.putExtra("hashMap", pickedPick);
startActivity(intent);
唯一の場所だコードを送信
ハッシュマップは常にnullと見なされるため、ハッシュマップにデータを追加しても機能しません。何が原因でnullになるのか分かりません。
if文を2つのネストされた文に分割すると、NPEを避けることができます: 'if(pickedPick!= null){if(pickedPick.keySet()。(clicked){...} else {... }} ' – Karakuri
@ Karakuri実際にはNPEを修正していますが、問題はハッシュマップにデータを追加しないことです。それだけでデータが追加されます – Sha
ここで' (onCreate、onResume、onNewIntent) - インテントに実際にデータが含まれているかどうかを確認します。 – damian