Autore Topic: Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar  (Letto 11192 volte)

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #15 il: 19 Luglio 2013, 16:27:29 CEST »
0
Perchè case R.id.homeAsUp: viene intercettato dall'activity.

Ho provato a toglierlo dall'activity e lasciarlo solo nel Fragment,ma non viene intercettato,naturalmente ho messo dei log nel metodo ma non viene stampato nulla

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #16 il: 19 Luglio 2013, 16:34:53 CEST »
0
ma scusa fammi capire...
se tu stai dove vuoi stare e lo intercetti sull'activity il programma si blocca su db.close?
quindi funziona tutto tranne il db.close?
se si non ti basta semplicemente usare
Fragment | Android Developers

o qualcosa di simile sul fragment per fargli chiudere il db?
« Ultima modifica: 19 Luglio 2013, 16:36:58 CEST da Trigun »

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #17 il: 19 Luglio 2013, 16:40:27 CEST »
0
ma scusa fammi capire...
se tu stai dove vuoi stare e lo intercetti sull'activity il programma si blocca su db.close?
quindi funziona tutto tranne il db.close?
se si non ti basta semplicemente usare
Fragment | Android Developers

o qualcosa di simile sul fragment per fargli chiudere il db?

Il programma non si blocca, ma vedendo i warning ho un leak nel db, che ripeto,dichiaro apro e gestisco nel fragment, ma se gestisco il back button dell'actionbar nell'activity non posso lanciare il db.close() perché l'activity non sa chi é db.

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #18 il: 19 Luglio 2013, 16:56:44 CEST »
0
appunto... quindi perchè non fai come ti ho detto già 200 volte?

usi onclose sul fragment e gli metti la chiusura del db
oppure
metti una funzione pubblica sul fragment per chiudere il db in modo che l'activity possa lanciarla e chiudere il db...

non mi sembra nessuna delle 2 cose difficili da fare... e funzionerebbero entrambe... (forse quella dell'onclose/ondestroy/onqualcosa potrebbe avere risultati imprevisti se gestita male... ma niente che non si possa sistemare)

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #19 il: 19 Luglio 2013, 17:26:51 CEST »
0
appunto... quindi perchè non fai come ti ho detto già 200 volte?

usi onclose sul fragment e gli metti la chiusura del db
oppure
metti una funzione pubblica sul fragment per chiudere il db in modo che l'activity possa lanciarla e chiudere il db...

non mi sembra nessuna delle 2 cose difficili da fare... e funzionerebbero entrambe... (forse quella dell'onclose/ondestroy/onqualcosa potrebbe avere risultati imprevisti se gestita male... ma niente che non si possa sistemare)

Puoi farmi un esempio di onClose per favore?
L'altra opzione é di dichiarare il db come variabile globale e fare come hai detto tu,richiamarlo quando back viene cliccato.

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #20 il: 19 Luglio 2013, 17:32:42 CEST »
+1
esempio di onDestroy?

Codice (Java): [Seleziona]
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (!this.refresh)
            db.close();
        else
            this.refresh = false;
    }

preso da 1 mio codice^^
a te semplicemente resterebbe il db.close


o semplicemente potresti fare

Codice (Java): [Seleziona]
    public void close() {
        mDb.close();
    }
(sempre dalla mia applicazione :-P)


dentro il fragment e richiamare la funzione dall'activity

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #21 il: 22 Luglio 2013, 10:18:28 CEST »
0
esempio di onDestroy?

Codice (Java): [Seleziona]
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (!this.refresh)
            db.close();
        else
            this.refresh = false;
    }

preso da 1 mio codice^^
a te semplicemente resterebbe il db.close


o semplicemente potresti fare

Codice (Java): [Seleziona]
    public void close() {
        mDb.close();
    }
(sempre dalla mia applicazione :-P)


dentro il fragment e richiamare la funzione dall'activity

Ho usato l'onDestroy e funziona.
Grazie per il suggerimento

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #22 il: 22 Luglio 2013, 10:27:36 CEST »
0
ovviamente usando destroy o cose simili devi stare attento che può esser lanciato dal sistema per liberare memoria o perchè è in standby ecc ecc
ad es sul mio c'e' quella cosa del refresh che l'ho messa apposta per quando forzo il refresh della pagina e non voglio che mi chiuda il db ^^

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #23 il: 22 Luglio 2013, 10:55:26 CEST »
0
Ho usato l'onDestroy e funziona.
Grazie per il suggerimento

Devi avere ben chiaro quando scatta e quando non scatta quel metodo.
Quando esci da un'Activity non parte quel metodo. Sicuramente parte onPause().
Quando giri il device, parte quel metodo (a meno che lo abbia configurato diversamente nel manifest).

C'è anche un altro aspetto molto importante.
Se il db lo apre l'activity è giusto che lo chiuda l'activity.
Ma se il db lo apre il fragment, no. Un fragment è indipendente dall'activity in cui lo inserisci, e nasce per essere inserito in Activity diverse.


Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #24 il: 22 Luglio 2013, 11:09:52 CEST »
0
Il db viene aperto nel fragment, ecco perché ho insistito a chiedere come gestire l'evento piú di una volta,ed ora lo chiudo con l'onDestroy, peró non ho ancora capito perché il metodo onOptionItemSelected non viene lanciato nel fragment.

Offline Paso

  • Utente junior
  • **
  • Post: 98
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy sIII mini
  • Sistema operativo:
    Linux Mint 17 64-bit
Re:Utlizzo dei Menu con Action Bar , Fragment e SherlockActionBar
« Risposta #25 il: 25 Novembre 2013, 16:52:36 CET »
0
Bel tutorial! Solo una cosa non ho trovato: come mettere i divisori tra gli item!