多个if语句(嵌套3)在android中不起作用

时间:2014-10-18 12:10:55

标签: android

我必须根据三个条件创建媒体播放器。在服务类我正在创建媒体播放器。服务类的onstart命令中的代码如下所示。在调试模式下,我发现当day ==“day1”和servicename ==“startservice1”控件没有进入if语句并且local1 ==“betty”没有被执行。所以,mPlayer和mPlayer2等于null。它们不是创建的。

MyService.java

 if (day == "day1" && servicename == "startservice1") {

        if (local1 == "betty")
            mPlayer = MediaPlayer.create(this, R.raw.betty);
        else if (local1 == "betty2")
            mPlayer = MediaPlayer.create(this, R.raw.betty2);
        else if (local1 == "thorne1")
            mPlayer = MediaPlayer.create(this, R.raw.thorne1);
        else if (local1 == "kick")
            mPlayer = MediaPlayer.create(this, R.raw.kick);


        if (local2 == "betty")
            mPlayer1 = MediaPlayer.create(this, R.raw.betty);
        else if (local2 == "betty2")
            mPlayer1 = MediaPlayer.create(this, R.raw.betty2);
        else if (local2 == "thorne1")
            mPlayer1 = MediaPlayer.create(this, R.raw.thorne1);
        else if (local2 == "kick")
            mPlayer1 = MediaPlayer.create(this, R.raw.kick);

    } else if (day == "day1" && servicename == "startservice2") {

        if (local2 == "betty")
            mPlayer = MediaPlayer.create(this, R.raw.betty);
        else if (local2 == "betty2")
            mPlayer = MediaPlayer.create(this, R.raw.betty2);
        else if (local2 == "thorne1")
            mPlayer = MediaPlayer.create(this, R.raw.thorne1);
        else if (local2 == "kick")
            mPlayer = MediaPlayer.create(this, R.raw.kick);
    }

2 个答案:

答案 0 :(得分:3)

试试这个,..

字符串您应该使用.equals("")

if(day.equals("day1") && servicename.equals("startservice1")) 

改变一切......

== 总是只比较两个 参考

答案 1 :(得分:2)

尝试使用等于功能,如:

if("betty".equals(local1))
{
     //Do Something
}