Android:如果Map包含Value,则更改按钮资源不起作用

时间:2012-07-31 09:55:53

标签: java android map android-viewpager

我有一个收藏夹按钮,我希望它根据是否在收藏夹地图中找到ID来更改它的图像,但它似乎不起作用。 这是我的代码:

boolean containsShop = false;
             for (Map<String, String> hashMap : TabsViewPagerFragmentActivity.favouritesData)
                {

                    containsShop = hashMap.containsValue(shopID);



                }

             if(containsShop) {
                 isFavourite = true;
                 favouritesBtn.setBackgroundResource(R.drawable.is_a_favourite);
             }  else {

                 isFavourite = false;
                 favouritesBtn.setBackgroundResource(R.drawable.favourite_normal);
             }

即使ID在地图中,似乎也将按钮设置为R.drawable.favourite_normal。 我做错了什么?

编辑:

抱歉,我复制了错误的代码。 - 我只是注意到它似乎只是将Button设置为 R.drawable.is_a_favourite如果对象是添加到favouritesData ArrayList的最后一个对象

2 个答案:

答案 0 :(得分:0)

containsShop = hashMap.containsValue(shopID);

替换此

containsVenue = hashMap.containsValue(shopID);
^^^^^^^^^^^^

答案 1 :(得分:0)

并在break中添加for loop语句,如果找到了该值。否则,在循环的下一次迭代中,boolean值可能会被覆盖。

containsShop= hashMap.containsValue(shopID);
if (containsShop) break;