2016-02-20 12 views
5

ho un'attività principale A (PlacesListActivity). Chiama l'attività B (AboutMeActivity) dal cassetto di navigazione. Ho dichiarato l'attività A come attività principale di B in manifest.bisogno di premere di nuovo il tasto due volte per spostarsi indietro da attività

Ora, quando vado da A-> B,

  • se premo la freccia indietro nella barra delle azioni, mi riporta all'attività A.

  • per quanto riguarda il pulsante hardware , Devo premerlo due volte per tornare all'attività A. Quando premo di nuovo l'hardware, non succede nulla. Sembra che solo ricarica attività B. io non voglio questo. Premendo il pulsante hardware una volta dovrebbe fare il lavoro.

Codice per l'attività B:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_about_me); 
    initialize(); 
} 

private void initialize() { 
    toolbar = (Toolbar) findViewById(R.id.toolbarAboutMe); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    ..... 
} 

funzione di inizializzazione solo inizializza alcuni elementi dell'interfaccia utente.

codice per chiamare l'attività B:

@Override 
public void onDrawerItemSelected(View view, int position) { 
    Intent i; 
    switch (position) { 
     case 0: 
      i = new Intent(this, AboutMeActivity.class); 
      startActivity(i); 
      break; 
      ...... 

manifesto:

<activity 
     android:name="....AboutMeActivity" 
     android:parentActivityName="....PlacesListActivity"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="....PlacesListActivity" /> 
    </activity> 

Edit:

Ho provato con assoluta OnBackPressed(), ma non è mai viene chiamato.

provato con assoluta OnKeyDown() e chiamando finish() in quella, ma ancora, devo premere due volte per tornare all'attività A.

+2

è in attività B del SoftKeyboard attiva o qualcos'altro a fuoco allora la stessa attività? Se u sovrascrivono OnBackPressed() in attività B dovrebbe funzionare bene quando l'attività in focalizzata. – Manu

+0

avevano avete risolto questo problema? – VLeonovs

risposta

1

Nel mio caso, il componente di ricerca ha avuto l'attenzione quando si preme il pulsante

l'hardware indietro

In questo modo risolto il problema:

override fun onResume() { 
    super.onResume() 
    searchInputView?.clearFocus() //searchInputView is initialized in onCreateOptionsMenu 
} 

Quindi in generale, assicurarsi che il pulsante Indietro è correclty catturato dall'attività e non da una sottocomponente della vostra attività

0

Forse solo l'override del metodo onBackPressed.

@Override 
public void onBackPressed() { 
    finish(); 
} 

anche tenere a mente l'evento BackStack

+0

Modificato la mia domanda. – Yashasvi

0

Maniglia onBackPressed in attività B

@Override 
    public void onBackPressed() {  
      super.onBackPressed(); 
      finish(); // to close this activity 
      //finish() or start another activity 
    } 
+0

Modificato la mia domanda. – Yashasvi

Problemi correlati