rob* ha scritto:
La prima dovrebbe servire per ottenere myimageview definita sotto R, la seconda dovrebbe creare un oggetto di tipo ImageView.
E' corretto??
Qual è l'argomento del Java che usa la sintassi (ImageView)? O è una sintassi usato solo per Android?
Partiamo dal presupposto che quello che ti riporto qui è una versione semplicistica del funzionamento, anche perchè ci sarebbe prima da parlare del metodo setContentView(...) o inflate (nel caso si parli di Fragment)....
ImageView è una sottoclasse di View definita in Android per rappresentare un oggetto che visualizza un'immagine all'utente.
La differenza tra le due operazioni, come dice migliorabile, sta appunto nei dettagli:
findViewById (.....) è un metodo della classe View che ritorna l'istanza di una View CONTENUTA della View root (sia essa una View o una ViewGroup o un Layout) recuperando la View interessata tramite l'id definito all'interno dell'xml (non entriamo nel merito R e quant'altro altrimenti ci infanghiamo).
Con questo metodo tu istanzi una variabile che fa riferimento alla View dichiarata nel layout e presente (si spera) all'interno di esso, in caso contrario il metodo ritorna un null..
Il tutto viene poi castato (ImageView) perchè il metodo ritorna un oggetto generico di tipo View, quindi per farlo combaciare alla varibile (in modo tale che si abbia visibilità ai suoi metodi specifici) si deve "obbligare" Java a vedere l'oggetto ritornato come classe scritta tra parentesi
new ImageView(this) invece ritorna un'istanza di un oggetto ImageView che NON è riferita a nessuna View DEFINITA IN PRECEDENZA all'interno della View root, e che quindi non risulta visibile all'utente fino a che non si aggiunge tramite metodi specifici (e impostando i dovuti parametri di posizionamento) alla "schermata" che l'utente vede.
Fino a quel momento, tu poi richiamare metodi e settare valori in tale ImageView (o TextView, Button, EditText ...) ma l'utente non potrà interagire e scatenare eventi finchè non sarà iniettata tramite codice, nel layout visibile all'utente..