我正在尝试在活动之间发送一个hashmap,但它始终为null。
发送代码:
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);
这是我们在hashmap中添加数据的唯一地方,但它不起作用,因为hashmap始终被视为null。我不知道是什么导致它保持无效。
答案 0 :(得分:0)
只有当pickedPick对象为null时,才会执行else语句。所以你得到了NPE。