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

多个if语句(嵌套3)在android中不起作用,android,Android,我必须根据三个if条件创建媒体播放器。在服务类中,我正在创建媒体播放器。服务类的onStart命令中的代码如下。在调试模式下,我发现当day==day1和servicename==startservice1控件没有进入if语句,并且local1==betty没有执行。因此,mPlayer和mPlayer2等于null。它们不是创建的 MyService.java if (day == "day1" && servicename == "startservice1") {

我必须根据三个if条件创建媒体播放器。在服务类中,我正在创建媒体播放器。服务类的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);
    }
试试这个

您应该使用的字符串

改变这一切

==始终只比较两个引用

尝试使用equals函数,如:

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

尝试使用switch语句,它看起来更有条理,可以帮助您指出到底是什么地方出了问题。另外,使用Log.d调试代码,检查变量值,并查看代码失败的位置。使用String.equalstring其他函数来比较字符串,而不是==运算符。像ifbetty.equalslocal1一样使用
if("betty".equals(local1))
{
     //Do Something
}