Domanda Noob su "Hello World" tutorial Android

Appena iniziato con lo sviluppo di Android e Java. Quindi, ecco il codice con cui sto lavorando:

package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class HelloAndroidActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 

Qual è lo scopo di dichiarare il metodo onCreate () qui:

  • Come posso fornire i parametri a una function di test che è stata lanciata usando il command adb shell am Instrumentation
  • Uso della camera2 rispetto alla camera deprecata - qual è la pratica migliore?
  • È ansible aggiungere una matrix o un object a SharedPreferences su Android
  • VectorDrawable Compatibilità all'indietro e installazione di librerie di supporto non ufficiali
  • qual è l'utilizzo del metodo ActivityManager.isUserAMonkey ()?
  • Android Studio R.java
  •  public void onCreate(Bundle savedInstanceState) { 

    Quindi usando super per call il metodo onCreate () qui:

     super.onCreate(savedInstanceState); 

    Non significa che tu chiami il metodo onCreate () dalla class Activity invece che dalla class HelloAndroidActivity? In caso affermativo, qual è il punto di dichiarare un metodo con lo stesso nome nella class HelloAndroidActivity?

    Grazie per qualsiasi chiarimento.

    5 Solutions collect form web for “Domanda Noob su "Hello World" tutorial Android”

    onCreate è una sorta di function main(String[] args) in Java normale. È where è impostato il codice.

    Nel tuo esempio, HelloAndroidActivity è una class che eredita da Activity . In questo modo, si onCreate metodo onCreate della class di base ( Activity ). L'overriding si verifica quando si definisce un metodo in una class derivata con la stessa firma di un metodo esistente nella class di base. Ciò significa che quando chiamo onCreate su un'istanza di HelloAndroidActivity , eseguirò la versione HelloAndroidActivity e non la versione della class di base ( Activity ).

    L'istruzione super.OnCreate(savedInstanceState) nella versione sovrascritta è esplicitamente chiamata la versione della class di base del metodo. Ciò significa che si desidera che HelloAndroidActivity.onCreate per prima eseguire l'implementazione della class di base, quindi eseguire un altro codice.


    Prendi gli esempi seguenti per illustrare questo comportmento (supporre che il metodo Output emetta qualcosa allo schermo):

    1.

     class A { public void DoSomething() { Output("A"); } } 

    In questo caso, call A.DoSomething() emette "A".


    2.

    Supponiamo di avere ancora la class A definita come sopra e quanto segue:

     class B extends A { } 

    In questo caso, call anche B.DoSomething() emetterà anche "A".


    3.

    Supponiamo di avere ancora la class A definita come sopra, e invece le seguenti:

     class B extends A { @Override public void DoSomething() { Output("B"); } } 

    Ora, call B.DoSomething() emette "B".


    4.

    Supponiamo di avere ancora la class A definita come sopra, e ora invece questo:

     class B extends A { @Override public void DoSomething() { super.DoSomething(); Output("B"); } } 

    Ora, chiamando B.DoSomething() emetterà "A" e poi "B".

    Stai creando una class che eredita da Activity ; ma devi definirne il suo comportmento, perciò dici alla tua class, quando creata, per call la class di base per completare tutte le cose che devono essere fatte ( super.onCreate() ), quindi imposta il layout per mostrare la tua schermata / app setContentView() ).

    Ancora una cosa: dare un'occhiata a @Override definita proprio prima del public void onCreate(Bundle savedInstanceState) : l'override significa che state estendendo il metodo base per lasciare che la class derivata fare tutto il lavoro della base, tra cui (dopo) la tua logica .

    Domanda: Qual è lo scopo di dichiarare il metodo onCreate () qui? Risposta: Il metodo oncreate () è analogo a quello principale (String args []) in JAVA ususal. L'attività oncreata viene chiamata quando l'attività viene avviata. Quindi tutte le inizializzazioni dovrebbero essere fatte in questo metodo.

    Scrivi: class pubblica HelloAndroidActivity estende l'attività Ciò significa che stai creando una class – "HelloAndroidClass" che eredita da class = "Attività".

    Si scrive: super.onCreate (savedInstanceState); Java utilizza la parola chiave "super" per call costruttori dalla class padre. Stai usando il concetto di overriding qui. Quando si esegue il codice, viene eseguito il metodo oncreato della class di base "HelloAndroidActivity" e non quello della class padre – "Attività class".

    Quindi, il codice eseguirà per la prima volta l'implementazione della class base del metodo oncreate () (super.oncreate (…)) e quindi l'implementazione della class derivata.

    Domanda: Qual è il punto di dichiarare un metodo con lo stesso nome nella class HelloAndroidActivity? Risposta: viene utilizzata la parola chiave super per inizializzare gli oggetti. Il punto in redeclaring lo stesso metodo e l'utilizzo di overiding è che si è salvati dalla riscrittura del codice della class di base.

    Dalla documentazione per il metodo onCreate:

    Le classi derivate devono ricall l'implementazione di questo metodo della super-class. Se non lo fanno, un'exception verrà gettata.

    Ulteriori informazioni qui per i methods di attività, il ciclo di vita ecc.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.