8

Questa domanda è stato chiesto anche da qualcuno sul sviluppatori di Google Android Group (link), ma non avere una risposta ...Equivalente di NavUtils quando non si utilizza la libreria di supporto Android?

recente ho tolto la libreria di supporto v4 dal mio progetto Android in Eclipse, perché la mia applicazione ha come target solo Android 4.0 (Ice Cream Sandwich) e versioni successive. Sto ora esaminando tutti i riferimenti alle librerie di supporto che mi stanno dando errori.

Uno in particolare è NavUtils, che sembra essere una classe di libreria di supporto utilizzata nella navigazione Attività. Esempio:

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

Qual è l'equivalente di NavUtils quando non si utilizza la libreria di supporto?

risposta

4

Consultare il codice sorgente di NavUtils, se necessario, basta copiarlo nel progetto. Rende solo l'attività genitore impostata nel manifest e la avvia.

+1

È anche utile notare che post ICS (JB e sopra) tutte le funzioni 'NavUtils' sono incorporate nella classe' Activity'. Se utilizzi API 15 e versioni successive, non hai bisogno di 'NavUtils'. – dcow

+0

@DavidCowden intendi se hai scelto come target API 16 e versioni successive. 15 ha ancora bisogno di NavUtils. –

+0

@DoctororDrive si è un refuso. Grazie per averlo preso. – dcow

0

La versione per Android di Jelly Beans include i NavUtils incorporati nella classe Activity.

Non è necessario gestire il caso : android.R.id.home in onOptionsItemSelected(). OPPURE è sufficiente restituire false per questo caso in onOptionsItemSelected().

0

Ecco questa risposta più semplice che ho trovato, e quello che ho fatto nel mio codice:

Basta sostituire:

NavUtils.navigateUpFromSameTask(this); 

con:

navigateUpTo(getParentActivityIntent()); 

Spero che questo aiuti!