我不知道这里发生了什么。我有一个具有以下大小为 4 的键集的 HashMap:
steps.keySet()
(java.util.HashMap$KeySet)
[INIT_FZLIST, INIT_DATA, INSTALL_DATABASE, PROMPT_GERAETEID]
INIT_FZLIST、INIT_DATA、INSTALL_DATABASE 和 PROMPT_GERAETEID 是枚举的值。
entrySet 还提供 4 个条目。
steps.entrySet()
(java.util.HashMap$EntrySet)
[INIT_FZLIST=de.ansat.terminal.activity.widgets.PendingCheckbox{b50cb4e0 V.E..... ......I. 24,524-456,666},
INIT_DATA=de.ansat.terminal.activity.widgets.PendingCheckbox{b50c8748 V.E..... ......I. 24,350-456,524},
INSTALL_DATABASE=de.ansat.terminal.activity.widgets.PendingCheckbox{b508e288 V.E..... ......I. 24,68-456,209},
PROMPT_GERAETEID=de.ansat.terminal.activity.widgets.PendingCheckbox{b50c59b0 V.E..... ......I. 24,209-456,350}]
但如果我这样做:
steps.get(INSTALL_DATABASE)
null
地图返回 null 并且如果我尝试使用结果对象,我会得到一个 nullpointerexception。
这是在 Android 活动中运行的。我在 API 级别 17 上使用 Android 4.2.2
[编辑]
private Map<InstallSteps, PendingCheckbox> steps = new HashMap<InstallSteps, PendingCheckbox>();
是我活动课的一个领域。
我有几个 AsyncTask 在该地图上工作,因为它代表了安装过程的进度。
PendingCheckbox 是一个扩展 LinearLayout 的 View。
[Edit2] 步骤是这样填写 onCreate(..) 的:
PendingCheckbox installDb = new PendingCheckbox(InstallActivity.this);
installDb.setText(INSTALL_DATABASE);
installDb.setChecked(false);
installDb.setLayoutParams(layoutParams);
root.addView(installDb);
steps.put(InstallSteps.INSTALL_DATABASE, installDb);
有谁知道可能导致这种行为的原因?我完全被卡住了。任何提示将不胜感激!