我必须根据三个条件创建媒体播放器。在服务阶层,我正在创建媒体播放器。下面是服务类的onstart命令中的代码。在调试模式下,我发现当day ==“day1”和servicename ==“startservice1”控件不在if语句内部并且local1 ==“betty”未执行时。所以,mPlayer和mPlayer2等于null。它们不是被创建的。多if语句(嵌套3)不工作在Android
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);
}
尝试使用switch语句,它看起来更有条理,能帮助你在针指向什么是错的。此外,使用Log.d来调试您的代码并检查变量的值并查看代码失败的位置。 – 2014-10-18 12:14:37
使用String.equals(String other)函数比较字符串,而不是==运算符。 – biegleux 2014-10-18 12:14:54
使用like if(“betty”.equals(local1)) – Amy 2014-10-18 12:15:08