2013-03-22 4 views
9

Sto utilizzando la libreria ActionBarSherlock e sto seguendo i passaggi esatti come suggerito here e here per abilitare la navigazione nella schermata precedente.ActionBarSherlock: OnOptionsItemSelected non riconosce R.id.home

Il mio codice è simile al seguente:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

e

@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); 
    } 

Ma R.id.home non viene riconosciuto e la casa si presenta in rosso. : -/Se utilizzo la barra di azione nativa, la dichiarazione home mi porta al file ids.xml. Ma qui la dichiarazione non viene trovata mentre utilizzo ActionBarSherlock Activity. Mi sto perdendo qualcosa?

risposta

12

solo sostituire questo

android.R.id.home 

a

R.id.home 

e verificare voi Codice r ... eseguirlo

perché

R.layout.* sono layout forniti dall'utente (in res/layout, ad esempio).

android.R.layout.* sono layout forniti con l'SDK di Android.

+0

Mi ha dato un suggerimento come R.id.homeAsUp, l'ho selezionato e salvato. Aggiornerò questa discussione una volta che scoprirò se funziona. – buggydroid

+0

Ho paura che questa non sia la risposta corretta. android.R.id.home va bene. Sospetto che minSdkVersion sia troppo basso. Dovrebbe essere 11 o superiore. –

+0

@Frank: se hai usato actionbarsharelock, il min sdk è 8. ho ragione? –

1

ho Ricorda in esecuzione in questo problema e apparentemente è abbastanza frequente una rapida di Google o di ricerca in overflow dello stack dovrebbe avete dato una certa comprensione in ogni modo il check out questa discussione R cannot be resolved - Android error Im abbastanza sicuro che la vostra esecuzione in stesso problema

+0

è necessario disporre di guardare nella mia risposta: http://stackoverflow.com/a/15566144/1168654 –

+0

bravo tua corretta? – brendosthoughts

+4

Brendan - Il mio problema non è con l'errore R. È interessato alla libreria ActionBarSherlock. Cerca di essere più specifico con le tue risposte. :) Solo un suggerimento. Grazie comunque. – buggydroid

7

So che questa è una vecchia domanda ma credo che la risposta giusta sia mancante.

Dovrebbe essere android.R.id.home perché si tratta di una risorsa di piattaforma, quindi il codice è corretto.

Assicurati che il tuo minSdkVersion è di 11 o superiore, in quanto home è stato introdotto nel 11.