我尝试在 Activity 之间发送 HashMap ,但它始终为空。
发送代码:
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 始终被视为空。我不知道是什么原因导致它保持为空。
请您参考如下方法:
仅当 pickPick 对象为 null 时,才会执行 else 语句。所以您将获得 NPE。