Опитвам се да изпратя хазмар между дейностите, но винаги е нула.
Изпращащ код:
public HashMap <Integer, Integer> pickedPick = new HashMap <>();
Intent intent = new Intent(this, CharPick.class);
intent.putExtra("hashMap", pickedPick);
startActivity(intent);
Получаващ код:
Intent intent = getIntent();
pickedPick = (HashMap <Integer, Integer>) intent.getSerializableExtra("hashMap");
Където го използвам и получавам NPE, преди да се опитам да го изпратя обратно:
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);
Това е единственото място, в което добавяме данни в хешарфа и не работи, защото хазартът винаги се счита нулев. Нямам представа какво го кара да остане нула.
Отговори:
0 за отговор № 1Извлечението "else" се изпълнява само когато pickedPick обекта е null. Така че получавате NPE.