Autore Topic: Come chiamare un metodo dell'activity parent  (Letto 802 volte)

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Come chiamare un metodo dell'activity parent
« il: 14 Marzo 2012, 12:31:17 CET »
0
Salve a tutti ragazzi, ho un quesito da porvi.
Ho un Activity A che lancia un Activity B, io vorrei ad un certo punto (sulla pressione di un tasto per esempio) lanciare un metodo dell'activity A..ho provato in questo modo

Codice (Java): [Seleziona]
                public void chiudi(View view) throws Exception{
                        //richiamo il parent per lanciare l'aggiornamento dell'immagine
                        SmartVActivity mioParent=(SmartVActivity)this.getParent();
                        mioParent.setFlagUpdated();
                        Log.i("LayersListActivity","caricata mappa nuova");
                        this.finish();
                }

Ma purtroppo quando provo a lanciare il metodo ricevo un IllegalStateException ...
avete qualche suggerimento?

grazie mille!   :-P
Leandro Rocchi
Software Developer - Geodatabase Designer

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Come chiamare un metodo dell'activity parent
« Risposta #1 il: 14 Marzo 2012, 14:53:58 CET »
0
Qui utilizzano i TabActivity, vedi se funziona anche con le Activity normali:
http://stackoverflow.com/questions/2992656/android-activity-call-another-activity-method
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Come chiamare un metodo dell'activity parent
« Risposta #2 il: 14 Marzo 2012, 15:57:18 CET »
0
ho risolto in questo modo:

sull'activity A chiamo l'activity B usando

startActivityForResult(intent, 0) 

dove intent è il mio intent esplicito mentre 0 mi serve per dire all'activity B come deve comportarsi (nel mio caso non mi serve e lo lascio a 0)

sempre nell'Activity A ho implementato onActivityResult(int requestCode, int resultCode, Intent data)

e li dentro ho implementato il comportamento dell'activity padre!

Leandro Rocchi
Software Developer - Geodatabase Designer

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Come chiamare un metodo dell'activity parent
« Risposta #3 il: 14 Marzo 2012, 17:46:42 CET »
0
Come hai risolto tu è differente da quello che chiedevi.
In pratica con startActivityForResult(intent, requestcode) ti assicuri che al termine dell'attività B chiamata, l'attività A abbia un comportamento diversificato in base alle tue esigenze.
Inizialmente, invece, io credevo che da un'attività B corrente, ti servisse richiamare un metodo dell'attività padre (naturalmente proseguendo l'attività B)
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Come chiamare un metodo dell'activity parent
« Risposta #4 il: 14 Marzo 2012, 17:49:00 CET »
0
si è vero, ma in realtà (e chiedo venia perché non ho spiegato per bene quello che avevo in mente) il chiamare "in remoto" il metodo dell'Activity A mi serviva proprio per aggiornare alcuni elementi di A al momento in cui chiudevo B...
non mi sono spiegato bene prima  :-P
Leandro Rocchi
Software Developer - Geodatabase Designer