Autore Topic: ListView o GridView in un fragment  (Letto 491 volte)

Offline Dav_android

  • Utente junior
  • **
  • Post: 78
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab2 10.1
  • Sistema operativo:
    Windows 8
ListView o GridView in un fragment
« il: 03 Aprile 2015, 11:36:10 CEST »
0
Ciao ragazzi, ho inserito una listview in un fragment che si alterna con altri su una stessa activiti, tutti i fragment funzionano alla perfezione e anche quello con la listview, il suo adapter personalizzato e il layout personalizzato. La cosa che non riesco a capire è perche se sono con il fragment attivo contenente la listview e ruoto il dispositivo l'applicazione si arresta dandomi un listato enorme di errori. Se il fragment viene inizializzatio in landscape o portrait funziona, se cambio in corso di visualizzazione la posizione allora mi si arresta.

Da cosa dipende? E' un comportamento dei fragment che mi è sfuggito?

Post unito: 03 Aprile 2015, 11:46:49 CEST
Ragazzi ho subito scoperto il motivo: il fragment non è static e io avevo messo nel costruttore delle istruzioni, ho capito che il costruttore deve essere vuoto per evitare questo errore. Mi spieghereste tecnicamente il perché?
« Ultima modifica: 03 Aprile 2015, 11:46:49 CEST da Dav_android, Reason: Merged DoublePost »

iClaude

  • Visitatore
Re:ListView o GridView in un fragment
« Risposta #1 il: 03 Aprile 2015, 11:54:20 CEST »
0
Se ruoti il telefono l'Activity viene distrutta e ricreata, e ciò vale anche x i Fragment in essa contenuti.

Offline Dav_android

  • Utente junior
  • **
  • Post: 78
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab2 10.1
  • Sistema operativo:
    Windows 8
Re:ListView o GridView in un fragment
« Risposta #2 il: 03 Aprile 2015, 12:03:24 CEST »
0
Si si questo lo so, però perchè il costruttore ha bisogno di essere vuoto, se viene ricreata non viene inizializzato il fragment richiamando il costruttore ugualmente?

Inolte ho un'altro problema vorrei cambiare il titolo della actionbar al momento che il fragment è attivo, ho provato in questo modo ma l'applicazione si arresta, come posso fare?

Codice (Java): [Seleziona]
@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        this.getActivity().getActionBar().setTitle(R.string.title_section2);
    }

iClaude

  • Visitatore
Re:ListView o GridView in un fragment
« Risposta #3 il: 03 Aprile 2015, 19:36:05 CEST »
0
Si si questo lo so, però perchè il costruttore ha bisogno di essere vuoto, se viene ricreata non viene inizializzato il fragment richiamando il costruttore ugualmente?

Inolte ho un'altro problema vorrei cambiare il titolo della actionbar al momento che il fragment è attivo, ho provato in questo modo ma l'applicazione si arresta, come posso fare?

Codice (Java): [Seleziona]
@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        this.getActivity().getActionBar().setTitle(R.string.title_section2);
    }

Per quanto riguarda il codice che hai postato, credo che tu debba inserirlo in onActivityCreated anziché in onAttach.

Per quanto riguarda l'altra domanda, non dipende da Android, ma dal tuo codice. E' probabile che venga lanciata qualche NullPointerException o simili. Devi verificare la riga che da l'errore e cercare di capire se hai gestito correttamente tutte le variabili considerando la distruzione-ricreazione dell'Activity e dei Fragment.