Parametri in Java

di il
3 risposte

Parametri in Java

Ciao a tutti sono Luca, come mio primo post sul forum vorrei chiedere una cosa probabilmente un po' stupida ma che mi crea parecchia confusione.
Non ho postato nel forum di Android perché credo sia una mia lacuna di Java puro, o forse direttamente di OOP.
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        aaa = savedInstanceState.getString(xxx);
    }

  
@Override
public void onSaveInstanceState(Bundle outState) {
    outState.putString(xxx, yyy);
    outState.putString(jjj, zzz);
    super.onSaveInstanceState(outState);
}
Cosa credo di aver capito:

Sia onCreate() che onSaveInstanceState() sono chiamati automaticamente dall'Activity nei dovuti momenti del suo ciclo di vita.

Cosa non capisco:

savedInstanceState e outState quando vengono creati? Sempre nel sistema, quindi nel codice sorgente della classe Activity?

Insomma io vedo che andiamo a usare funzioni come putString su reference come outState però non vedo la creazione di outState, questo mi manda in confusione..

Potete aiutarmi? Grazie mille

3 Risposte

  • Re: Parametri in Java

    5om3on3 ha scritto:


    Cosa non capisco:

    savedInstanceState e outState quando vengono creati? Sempre nel sistema, quindi nel codice sorgente della classe Activity?

    Insomma io vedo che andiamo a usare funzioni come putString su reference come outState però non vedo la creazione di outState, questo mi manda in confusione..
    Non sono "qualificato" in modo specifico su Android ma ti posso rispondere in generale. Quei metodi che hai scritto sono in "override" (e la annotazione @Override è un chiaro segnale e pro-forma).
    Quindi scrivendoli hai ri-definito queste due fasi del "ciclo di vita" della activity. Il framework di Android sa e stabilisce ovviamente il ciclo di vita in generale e chiama queste varie fasi se/quando/come necessario.

    Quando lo fa, invoca questi metodi polimorficamente e siccome ne hai fatto un ovverride, i metodi realmente invocati sono i tuoi, della tua activity specifica. A questi metodi passa degli argomenti, nei due casi citati ciascun metodo riceve 1 oggetto Bundle. Questo oggetto è creato e gestito dal framework di Android, di questo non dovresti preoccuparti.
    Quando ti invoca onSaveInstanceState è come se ti dicesse: "bene activity specifica, ora devi salvare il tuo stato, eccoti un oggetto Bundle, usalo per salvare quello che vuoi".
  • Re: Parametri in Java

    Grazie mille, non capivo se l'oggetto Bundle veniva creato da qualche parte o se fossi io a non aver capito qualche concetto di OOP.
  • Re: Parametri in Java

    Ciao,
    Solo un piccolo appunto sul metodo onCreate(). Android è a tutti gli effetti un framework. Un framework molto dipendente dall'interazione tra l'utente e l'ambiente grafico. In Android non si parte da una classe principale ed un metodo main() ma le classi vengono caricate, istanziate ed eseguite, per esempio, al click su di un bottone.
    Per dare alla classe un punto da cui partire, si usa il metodo onCreate, con un opportuno override, che è il primo ad essere eseguito una volta caricata ed istanziata la classe.
Devi accedere o registrarti per scrivere nel forum
3 risposte