Autore Topic: Ripristinare fragment  (Letto 483 volte)

Offline lz91

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S I-9000
  • Sistema operativo:
    Ubuntu, Windows 7
Ripristinare fragment
« il: 19 Giugno 2014, 17:45:53 CEST »
0
Ciao ragazzi, :-)

Ho creato un activity dove al suo interno in base alla pressione di alcuni bottoni o azioni cambia il fragment al suo interno.
Pero' ho notato che alla pressione del tasto indietro l'applicazione si chiude, questo perche termina l'activity.
Ma io vorrei che alla pressione del tasto indietro mi tornasse alla fragment precedentemente aperta.
Qualcuno sa come fare?

ho visto che per modificare la funzione del tasto fisico indietro bisogna fare l'override del metodo onBackPressed(). ;-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ripristinare fragment
« Risposta #1 il: 19 Giugno 2014, 18:04:23 CEST »
0
Come è fatto il codice che cambia il fragment?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline lz91

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S I-9000
  • Sistema operativo:
    Ubuntu, Windows 7
Re:Ripristinare fragment
« Risposta #2 il: 19 Giugno 2014, 18:12:30 CEST »
0
Ti copio il codice  :-)

Layout xml :
Codice (XML): [Seleziona]
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/container"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="com.prova.activity.ActivityMainFragment"
   tools:ignore="MergeRootFrame" />

Nell'activity principale per cambiare il fragment nel container uso questo codice :

Codice (Java): [Seleziona]
FragmentManager fragmentManager = getSupportFragmentManager();         
Fragment fragmentOne = new fragmentOne ();
fragmentManager.beginTransaction()
                .replace(R.id.container, fragmentOne)
                .commit();


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ripristinare fragment
« Risposta #3 il: 19 Giugno 2014, 18:38:07 CEST »
+1
Se ho capito bene la domanda, devi usare addToBackStack().

Guarda la descrizione delle transactio sul sito ufficiale:
Fragments | Android Developers
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline lz91

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S I-9000
  • Sistema operativo:
    Ubuntu, Windows 7
Re:Ripristinare fragment
« Risposta #4 il: 20 Giugno 2014, 23:26:09 CEST »
+1
Grazie mille.
Pensavo di dover fare piu' cose tipo salvare ad ogni pressione di un bottone il fragment attuale in qualche arrayList.
Ma la soluzione che mi hai indicato tu e' stata molto più veloce.

Posto qui la mia soluzione :
Ho aggiunto il metodo addToBackStack() quando creo il fragment ( vedi sotto )

Codice (Java): [Seleziona]
FragmentManager fragmentManager = getSupportFragmentManager();          
Fragment fragmentOne = new fragmentOne ();
fragmentManager.beginTransaction()
                .replace(R.id.container, fragmentOne)
                .addToBackStack(null)
                .commit();

e alla pressione del tasto back ho aggiunto queste righe di codice per visualizzare il fragment precedente :

Codice (Java): [Seleziona]
if (getSupportFragmentManager().getBackStackEntryCount() > 0){
                    boolean done = getSupportFragmentManager().popBackStackImmediate();
}

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ripristinare fragment
« Risposta #5 il: 21 Giugno 2014, 09:34:16 CEST »
0
Posto qui la mia soluzione :

Grazie per aver postato la soluzione completa, ti ho dato un THANKS. Nella speranza che anche altri utenti seguano il buon esempio.  :D
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store