switch case deyimi hata: case ifadeleri sabit ifadesi olması gerekir
Benim switch-case deyimi dün iyi mükemmel çalışıyor. Ama ne zaman I koşmak kodu bu sabah eclipse verdi bana bir hata altı çizili durum tablolarında renk kırmızı ve diyor ki: case ifadeleri sabit ifadesi olmak zorundadır, sürekli bilmem ne oldu. İşte benim kod aşağıda:
public void onClick(View src)
{
switch(src.getId()) {
case R.id.playbtn:
checkwificonnection();
break;
case R.id.stopbtn:
Log.d(TAG, "onClick: stopping srvice");
Playbutton.setImageResource(R.drawable.playbtn1);
Playbutton.setVisibility(0); //visible
Stopbutton.setVisibility(4); //invisible
stopService(new Intent(RakistaRadio.this,myservice.class));
clearstatusbar();
timer.cancel();
Title.setText(" ");
Artist.setText(" ");
break;
case R.id.btnmenu:
openOptionsMenu();
break;
}
}
Tüm R. id.int kırmızı çizgili.
CEVAP
Normal bir Android projesinde, kaynak R sınıfında sabitler bu şekilde ilan edilir
public static final int main=0x7f030004;
Ancak, kütüphane projesi 14, ADT olarak, bu gibi ilan edilecektir:
public static int main=0x7f030004;
Diğer bir deyişle, sabitler kütüphane projesi nihai değildir. Bu nedenle bu kod artık derleme.
Bu basit çözüm: eğer başka bir deyimi, switch deyimi Dönüştürmek.
public void onClick(View src)
{
int id = src.getId();
if (id == R.id.playbtn){
checkwificonnection();
} else if (id == R.id.stopbtn){
Log.d(TAG, "onClick: stopping srvice");
Playbutton.setImageResource(R.drawable.playbtn1);
Playbutton.setVisibility(0); //visible
Stopbutton.setVisibility(4); //invisible
stopService(new Intent(RakistaRadio.this,myservice.class));
clearstatusbar();
timer.cancel();
Title.setText(" ");
Artist.setText(" ");
} else if (id == R.id.btnmenu){
openOptionsMenu();
}
}
http://tools.android.com/tips/non-constant-fields
Hızlı bir şekilde aşağıdaki kullanarak: if-else
bir açıklama switch
ifadesi dönüştürebilirsiniz
Eclipse< / ^ br .
switch
anahtar kelime ve basın imleci taşıyınCtrl1sonra seçin
'''İf-else'. anahtarı dönüştürmek
Android Studio< / ^ br .
switch
anahtar kelime ve basın imleci taşıyınAltGirinsonra seçin
''''. Eğer anahtarı ile değiştirin
Bir iki değerleri kullanarak switch ca...
Switch case deyimi bir dizi olarak kul...
Ne kadar kısaltmak için switch case bl...
Switch-case kazandı't derleme kul...
SQL Server: case deyimi aşağıdaki örne...