IF语句永远不会在方法内执行

时间:2013-09-01 15:00:08

标签: java android eclipse

我有一个名为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语句应该执行,对吗?但事实并非如此。

1 个答案:

答案 0 :(得分:1)

您必须使用.equals()

if(playerColor.equals("BLACK"))

正如用户枪支所提到的,这更安全(因为playerColor可能为null):

"BLACK".equals(playerColor)