我必須根據三個條件創建媒體播放器。在服務階層,我正在創建媒體播放器。下面是服務類的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