HashMap无法按预期运行

时间:2015-11-29 18:22:03

标签: java android hashmap

我制作了一个3 x 3的盒子矩阵。 单击该框中的任何一个都会将元素添加到hashmap 例如,单击1st box将“imageView1”添加为键,将“true”添加为hashmap的值。

有两个玩家,因此有两个hashmaps player1和player2。

player1.put("imageView1","true");

因此,当任一玩家点击该框时,相应的框名称将添加到相应的散列图中。

然后检查玩家是否赢了

  if(player1.containsKey("imageView1") 
     &&player1.containsKey("imageView2")
     &&player1.containsKey("imageView3")){
        return true;
    }

但这不起作用。你能帮帮我吗? 注意:我没有放完整个算法..我只检查了1个条件(即如果1 2 3被检查,那么玩家1赢了,就像tic tac toe

Heres是文件

MainActivity.java(original)(http://pastebin.com/AtypDtuC

MainActivity.java(简明)(http://pastebin.com/gJCud9WE

Content_Main.xml(http://pastebin.com/vsWd0Jii

1 个答案:

答案 0 :(得分:0)

您的代码似乎没问题,但我建议检查一下

getResources().getResourceName(view.getId())

正在放入你的地图。具体来说,您应该确认:

getResources().getResourceName(view.getId()).equals("imageView1")
getResources().getResourceName(view.getId()).equals("imageView2")
getResources().getResourceName(view.getId()).equals("imageView3")
getResources().getResourceName(view.getId()).equals("imageView4")
...
getResources().getResourceName(view.getId()).equals("imageViewN")

至少是一次。即您需要确保输入的Strings与拨打.contains()时完全相同,否则您永远不会与.contains()匹配