SORU
1 ŞUBAT 2012, ÇARŞAMBA


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
1 ŞUBAT 2012, ÇARŞAMBA


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • huyked

    huyked

    28 Mart 2008
  • picster

    picster

    20 NİSAN 2006