2012-10-02 2 views
14

Ho un ViewPager con Fragment s. Quando si fa clic su un pulsante nello Fragment, lancio uno Activity sul mio. Premendo il pulsante Indietro sul mio telefono quando sono nello Activity, mi riporta alla schermata precedente, ovvero quella con lo Fragment s nello ViewPager.Come posso far funzionare il pulsante "Su" del mio ActionBar come il pulsante "Indietro" del telefono?

mi piacerebbe attivare il pulsante "up" nel mio ActionBar e per fare ciò, ho scritto il seguente codice:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.detail); 

    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
} 

Ora il "up" viene mostrato il pulsante, ma cliccarlo non mi riporta alla schermata precedente. Mi piacerebbe il pulsante "su" per la stessa cosa come il pulsante "indietro".

Come posso fare questo? Che cosa sto facendo di sbagliato?

Grazie.

+1

non si dovrebbe usare il pulsante come un pulsante Indietro. L'obiettivo del pulsante Su è di salire e non tornare indietro. Dovresti considerare di usarlo come dovrebbe. http://developer.android.com/guide/topics/ui/actionbar.html#Up –

risposta

48

è necessario anche attuare ciò che dovrebbe essere fatto quando il pulsante up si fa clic:

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

    return super.onOptionsItemSelected(item); 
} 
+2

Questo è il problema che ho avuto. Mi aspettavo che il pulsante venisse automaticamente collegato, ma quando si è fatto clic, non è successo nulla. Dopo aver ignorato onOptionItemSelected() con il codice sopra, ha funzionato come un campione. Grazie! – proudgeekdad