2013-03-22 12 views
9

Używam biblioteki ActionBarSherlock i postępuję zgodnie z zalecanymi instrukcjami here i here, aby umożliwić nawigację do poprzedniego ekranu.ActionBarSherlock: OnOptionsItemSelected nie rozpoznaje obiektu R.id.home

Mój kod wygląda następująco:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

i

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // This callback is used only when mSoloFragment == true (see 
    // onActivityCreated above) 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     // App icon in Action Bar clicked; go up 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Reuse the 
                  // existing 
                  // instance 
     startActivity(intent); 

     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 

Ale R.id.home nie jest rozpoznawany i domu pojawia się na czerwono. : -/Jeśli używam natywnego paska akcji, deklaracja macierzysta przenosi mnie do pliku ids.xml. Ale tutaj deklaracja nie zostanie znaleziona podczas korzystania z ActionBarSherlock Activity. Czy czegoś brakuje?

Odpowiedz

12

tylko zastąpić ten

android.R.id.home 

do

R.id.home 

i sprawdzić się Kod r ... go uruchomić

ponieważ

R.layout.* są układy podasz (w res/layout, na przykład).

android.R.layout.* to układy dostarczane z zestawem SDK systemu Android.

+0

Dało mi to sugestię jako R.id.homeAsUp, wybrałem to i zostało zapisane. Zaktualizuję ten wątek, gdy dowiem się, czy działa. – buggydroid

+0

Obawiam się, że to nie jest poprawna odpowiedź. android.R.id.home jest w porządku. Podejrzewam, że minSdkVersion jest zbyt niska. Powinien wynosić 11 lub więcej. –

+0

@Frank: jeśli użyłeś actionbarsharelock, to min sdk jest 8. am i tak? –

1

ja pamiętam uruchomiony na ten problem i najwyraźniej jej dość częste szybkie google lub przeszukiwać przepełnienia stosu powinna już wam pewien wgląd Anyways sprawdzić ten wątek się R cannot be resolved - Android error Im dość pewny swój bieg do samego problemu

+0

trzeba patrzeć w moją odpowiedź: http://stackoverflow.com/a/15566144/1168654 –

+0

bravo Twój prawidłowe? – brendosthoughts

+4

Brendan - Mój problem nie dotyczy błędu R. Dotyczy biblioteki ActionBarSherlock. Staraj się być bardziej konkretny przy swoich odpowiedziach. :) Tylko sugestia. Dzięki i tak. – buggydroid

7

Wiem, że to stare pytanie, ale uważam, że brakuje właściwej odpowiedzi.

Powinien być android.R.id.home, ponieważ jest zasobem platformy, więc Twój kod jest w porządku.

Upewnij się minSdkVersion jest 11 lub wyższy od home został wprowadzony w 11.

Powiązane problemy