Próbuję wysłać skrót między aktywnościami, ale zawsze jest on zerowy.
Wysyłanie kodu:
public HashMap <Integer, Integer> pickedPick = new HashMap <>();
Intent intent = new Intent(this, CharPick.class);
intent.putExtra("hashMap", pickedPick);
startActivity(intent);
Odbieranie kodu:
Intent intent = getIntent();
pickedPick = (HashMap <Integer, Integer>) intent.getSerializableExtra("hashMap");
Gdzie go używam i otrzymuję NPE przed próbą odesłania:
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);
Jest to jedyne miejsce, w którym dodajemy dane do mapy i nie działa, ponieważ mapa jest zawsze uważana za zerową. Nie mam pojęcia, co powoduje, że pozostaje zerowa.
Odpowiedzi:
0 dla odpowiedzi № 1Instrukcja else zostanie wykonana tylko wtedy, gdy obiekt pickedPick ma wartość NULL. Więc dostajesz NPE.