我有一个名为Player的课程。这个类中存储了一些玩家对象,每个对象都有一个“名称”,“得分”和“颜色”。我做了一个方法,应该根据我正在处理的对象设置TextView颜色。这是代码:
public void setTextViewColor(TextView tw, String playerColor){
Log.i("TAG", playerColor);
if (playerColor == "BLACK")
{
tw.setTextColor(Color.BLACK);
Log.i("TAG", "tw color now black");
}
else if (playerColor == "BLUE")
{
tw.setTextColor(Color.BLUE);
Log.i("TAG", "tw color now blue");
}
else if (playerColor == "CYAN")
{
tw.setTextColor(Color.CYAN);
}
else if (playerColor == "DKGRAY")
{
tw.setTextColor(Color.DKGRAY);
}
else if (playerColor == "GRAY")
{
tw.setTextColor(Color.GRAY);
}
else if (playerColor == "GREEN")
{
tw.setTextColor(Color.GREEN);
}
else if (playerColor == "LTGRAY")
{
tw.setTextColor(Color.LTGRAY);
}
else if (playerColor == "MAGENTA")
{
tw.setTextColor(Color.MAGENTA);
}
else if (playerColor == "RED")
{
tw.setTextColor(Color.RED);
}
else if (playerColor == "YELLOW")
{
tw.setTextColor(Color.YELLOW);
}
}
现在的问题是IF或ELSE语句永远不会执行。这就是我调用方法的方法:
setTextViewColor(newTextView, newPlayer.color);
该方法应该起作用,因为每次执行它时,我都可以看到描述颜色的logcat消息(颜色总是正确的)。但是我从来没有看到“tw color now black”或“tw color now blue”的消息,所以我很确定IF语句有问题。
如果标签显示playerColor是“BLACK”,那么第一个if语句应该执行,对吗?但事实并非如此。
答案 0 :(得分:1)
您必须使用.equals()
:
if(playerColor.equals("BLACK"))
正如用户枪支所提到的,这更安全(因为playerColor可能为null):
"BLACK".equals(playerColor)