2011-11-21 46 views
0

我被困在swich的情況下。下面Swichcase不能在android中使用?

Log.e("@@@@@@@@@@@@@@@@@@@@@ pos",""+posSel_lay); 
String ff=Integer.toString(posSel_lay); 
//var ffs=Integer.toString(posSel_lay); 
Log.e("@@@@@@@@@@@@@@@@@@@@@ pos",""+ff); 
if(ff.equals("0")){ 
    Log.e("@@@@@@@@@@@@@@@@@@@Lagan",""); 
}else if(ff.equals("1")){ 
    Log.e("@@@@@@@@@@@@@@@@@@@MBBS",""); 
}else if(ff.equals("2")){ 
    Log.e("@@@@@@@@@@@@@@@@@@@JODHA",""); 
}else if(ff.equals("3")){ 
    Log.e("@@@@@@@@@@@@@@@@@@@ZINDAGI",""); 
} 

請檢查代碼我只記錄此行 @@@@@@@@@@@@@@@@@@@@@ POS 2 &它不是在SWICH情況下,爲什麼要去我不知道,你能幫我嗎?

+0

我沒有看到'switch'語句。你有一個「if ... else if」鏈。只有一個分支即將執行。你期望發生什麼? –

+0

我忘了放開關盒。如果還有其他情況,還可以切換大小寫。在兩者都沒有進入狀態。 –

回答

0

我找到了解決方案。我從其他活動傳遞的bundle中得到了這個posSel_lay。以前我在switch按鈕上寫了開關代碼,所以現在我改變了流程, 當我從bundle中獲得posSel_lay的值時,只有我編寫了開關的代碼 &我有我在本地聲明瞭一些布爾值true或false。當用戶點擊按鈕時,我用布爾變量進行檢查。然後完成。 感謝您的回覆。

0

默認情況下,交換機的情況下可與整數,你爲什麼不嘗試類似如下:

Log.e("@@@@@@@@@@@@@@@@@@@@@ pos",""+posSel_lay); 

switch (posSel_lay){ 
    case 0: 
     Log.e("@@@@@@@@@@@@@@@@@@@Lagan",""); 
     break; 
    case 1: 
     Log.e("@@@@@@@@@@@@@@@@@@@MBBS",""); 
     break; 
    case 2: 
     Log.e("@@@@@@@@@@@@@@@@@@@JODHA",""); 
     break; 
    case 3: 
     Log.e("@@@@@@@@@@@@@@@@@@@ZINDAGI",""); 
     break; 
    default: 
     break; 
} 

現在,而不是轉換成字符串,並使用的if-else鏈,您可以使用選擇語句,哪個IMO更清潔。

+0

嗨,傑克,嘗試了這種方法與int值,但它不會在swich case dude什麼問題。 –

+0

我不知道,你有沒有調試過,看看posSel_lay的價值是什麼? – Jack

+0

感謝您回覆我的問題,我找到了解決方案。 –

0
Log.e("@@@@@@@@@@@@@@@@@@@@@ pos", "" + posSel_lay); 

switch(posSel_lay) { 
    case 0: 
    Log.e("@@@@@@@@@@@@@@@@@@@Lagan",""); 
    break; 
    case 1: 
    Log.e("@@@@@@@@@@@@@@@@@@@MBBS",""); 
    break; 
    case 2: 
    Log.e("@@@@@@@@@@@@@@@@@@@JODHA",""); 
    break; 
    case 3: 
    Log.e("@@@@@@@@@@@@@@@@@@@ZINDAGI",""); 
    break; 
} 
0

我實在無法理解你的問題,但這裏是SwitchCase

switch(posSel_lay){ 

    case 0: 
     Log.e("@@@@@@@@@@@@@@@@@@@Lagan",""); 
     break; 

    case 1: 
     Log.e("@@@@@@@@@@@@@@@@@@@MBBS",""); 
     break; 

    case 2: 
     Log.e("@@@@@@@@@@@@@@@@@@@JODHA",""); 
     break; 

    case 3: 
     Log.e("@@@@@@@@@@@@@@@@@@@ZINDAGI",""); 
     break; 
    } 
+0

雅,但在日誌我得到什麼是posSel_lay的價值,但交換機不工作,這意味着它不會檢查任何條件。 –

1

所有的答案都不錯。

但是你至少應該把任何消息放入Log的消息參數中。否則你將無法在日誌中看到這個

Log.e("@@@@@@@@@@@@@@@@@@@ZINDAGI","some message.");