我最近尝试通过将一些数据结构发布到一个简单的键值映射中来简化它们。我推送一个日志以验证在 .put 方法期间该值是否已与键关联。
当我稍后调用 .get 时,该值不再可用。重要的代码片段:
MainActivity.class
public final HashMap<String, Integer> resumeMap = new HashMap<String, Integer>();
if (resumeMap.containsKey(url)) {
Log.i("Value is there!", url);
resumeTime = resumeMap.get(url);
Log.i("Value set to:", "" + resumeTime);
} else {
resumeTime = 0;
Log.i("Value is not found!", "" + url);
}
public void setHashmap(String url, Integer time) {
resumeMap.put(url, time);
int newTime = resumeMap.get(url);
Log.i("Setting:", "URL: " + url);
Log.i("Setting:", "TIME:" + newTime);
}
VideoPlayer.class
MainActivity setter = new MainActivity();
setter.setHashmap(urlString, player.getCurrentPosition());
在 setHashmap 方法中,日志按预期正确输出 url 和时间。然而 resumeMap.containsKey(url) 仍然是假的,即使调试器正在通过“找不到值!”确认预期的匹配键。输出。
为了清楚起见,在 MainActivity 的第一次传递期间,我预计未找到结果,然后调用 VideoPlayer 类,resumeTime 为 0,结果正确。我验证了键和值的设置,当我打开同一个链接时,我仍然收到 0。
我最初在它自己的类中构建了 Hashmap,结果相同。我将地图移动到 MainActivity 只是为了调试。感谢您提供的任何帮助。