
Originariamente inviato da
Andrea
Eh, la tua richesta è un po generica mi pare..
Che cosa ti ha lasciato "disorientato" ?
A dir la verità un po' tutto...ti accontento subito ecco il dettaglio...con relativi commenti che esprimono le mie perplessità da ignorante nonchè newbie ma volenteroso
Codice PHP:
package com.example.helloandroid;
#1. immagino che è obbligatorio definire il nome del software.
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
#2. Queste sono librerie, giusto? Un po' come il C, ma di cosa si occupano??
# Dove trovo i vari metodi? E una lista di tutte le altre librerie create e
# messe a disposizione da AOSP?
public class HelloAndroid extends Activity {
#3. Definisco una classe pubblica di nome HelloAndroid che è un'estensione
# di Activity che presupponto sia ovviamente anch'essa una classe,
# il che significa che HelloAndroid eredita tutti i metodi di Activity,
# giusto??
/** Called when the activity is first created. */
@Override
#4. Questo che roba è?!
public void onCreate(Bundle savedInstanceState) {
#5. in php ad esempio, la funzione costruttrice deve avere lo stesso nome
# dell'intera classe, nel caso di Android invece è d'obbligo che
# il metodo costruttore si chiami onCreate e fin qui nessun problema
# il costruttore in questo caso non deve generare
# nessun risultato (void), è un metodo pubblico (e cos'è un metodo
# pubblico all'interno di una classe? Non deve sempre e comunque essere
# richiamato come metodo dell'oggetto? Tipo nomeOggetto.onCreate?)
# E il "Bundle savedInstanceState" cos'è?
super.onCreate(savedInstanceState);
#6. chi è super? dove è stato definito? Non è un istanza della
# classe, non ho visto in giro una roba tipo
# super = new HelloAndroid, perchè il nome della classe
# è HelloAndroid, ma quando è stato creato un oggetto della
# classe HelloAndroid?
# E poi scusate, ma viene fatto riferimento al metodo
# onCreate direttamente dentro il metodo stesso?!?!
# Che fa chiama se stesso?!
TextView tv = new TextView(this);
#7. bene, qui creo un oggeto "tv" della classe TextView
# e passo come parametro al metodo costruttore questa
# stessa classe (this), ma perchè si deve scrivere
# TextView anche prima? Non basta un:
# tv = new TextView(this);?
tv.setText("Hello, Android");
#8. qui ora è più semplice, passo la stringa "Hello, Android" al
# metodo setText dell'oggetto tv
setContentView(tv);
#9. qui proprio non capisco nulla,setContentView è una funzione
# generica? Non è chiamata come metodo di un oggetto
# anche se viene passato come parametro l'intero oggetto tv.
# e la connessione con il file Xml dove la trovo?
}
}
Se riuscissi a capire questi dettagli nello specifico poi il resto è discesa, spulciare le librerie che sono a disposizione non è un problema, anche la sintassi credo sia specificata da qualche parte...