2014-02-10 73 views
0

我正在开发一款应用程序,需要通知用户玩家已经玩过多少次匹配。
我正在使用包含玩家名称的ListView。
如果玩家被选中一次,它会变成绿色。
如果玩家被选中两次,它会变成黄色,依此类推。
第一次点击正常工作,它变为绿色。
但是,当我第二次点击它时,没有任何反应。
任何人都可以告诉我我做错了吗?Android ListView颜色变化

谢谢!

这是我使用的代码:我想你是做一些错误

if (pos == 1){ 
       text1.setBackgroundColor(Color.GREEN); 

       if(numberOfClicks ==2){ 
        text1.setBackgroundColor(Color.YELLOW); 
       }else if(numberOfClicks == 3){ 
        text1.setBackgroundColor(Color.RED); 
       } 
      } 
+2

您在哪里更改代码中的'numberOfClicks'值? –

+1

你相应地增加了'numberOfClicks'的值吗?这应该在'onClick()'内完成。 – SMR

+0

你需要更精确的事情,而不是点击数来改变文字的背景 –

回答

0

,你的代码是不是动态的,如果你使用像if(pos == 1)条件,那么它只会改变的第一个列表文本值不其他的,所以基本上当你添加更多的内容时会更困难,所以使用循环并找到值的位置,然后更改列表项的颜色。

第二件事情要做到这一点你试图你需要改变numberOfClicks每次到一些变量,每次你需要检查按钮被点击多少次,所以最好的办法是使用标志整数变量增量值每次点击时,然后计算点击次数并更改颜色。

+0

感谢您的回复!我试图首先使用一个循环,但是,它没有按照我想要的方式工作。如果我点击了一个名字,它会变成绿色,但如果我点击其他名称,它会变成黄色,而不是先变绿色。 但是,当我说明职位时,这仍然在发生。你有什么其他建议可以解决这个问题吗?或者,也许我应该做循环的方式的一个例子?我可能做错了!谢谢。 – user3275801

+0

你在使用适配器类吗? – InnocentKiller

+0

然后简单的'text1.setBackgroundColor(Color.GREEN);'把这行放在onCreate中,而不是放入一个onItemClick,其余的都是一样的。试试这个。 – InnocentKiller