corso di programmazione per android live

103
ESPEQTO In Ufl CLICK Francesco Frascà COQSO DI PQOGQCIFI'II'DCIZIOHE PE? og_:=cm; L|VELLCÌ 234561891011213i4È‘ QEGLIZZCI LCI TUO P?lfflCl CIPP: un QISPOF‘IDITOQE IflTEQCITTIVO IITÌPCIQEQCII: 7‘. 3 l _ J ' .| hdr’bid SDK‘1 -' J usreEstrumentîÈlndrèd în’Ètlîfis l

Upload: monstertruck-raptor

Post on 12-Dec-2015

229 views

Category:

Documents


1 download

DESCRIPTION

Inizio del corso di programmazione per Android

TRANSCRIPT

Page 1: Corso Di Programmazione Per Android Live

ESPEQTO In Ufl CLICK

Francesco Frascà

COQSO DI PQOGQCIFI'II'DCIZIOHE PE?

og_:=cm;

L|VELLCÌ 234561891011213i4È‘

QEGLIZZCI LCI TUO P?lfflCl CIPP:

un QISPOF‘IDITOQE IflTEQCITTIVO

IITÌPCIQEQCII:

7‘. ’ 3 l _ J ' .|

hdr’bid SDK‘1 ’ ,à -' ‘

J ’ usreEstrumentîÈlndrèd în’Ètlîfis

l ‘

Page 2: Corso Di Programmazione Per Android Live

Francesco Frascà

Corso di programmazione per

Android

Livello 1 - Realizzala tuaprimaapp:unrisponditoreinterattivo

Page 3: Corso Di Programmazione Per Android Live

© 2012 Area 51 s.r.l., San Lazzaro di Savena (Bologna)

Prima edizione e-book Area51 Publishing: maggio 2012

Android èun marchio registrato di GoogleInc.Cover: Valerio Monego

Redazione e sviluppo ebook: Enrico De Benedictis

Se intendi condividere questo ebook con un’altra persona, ti chiediamo

cortesemente discaricare una copia a pagamento per ciascuna delle

persone a cui lo vuoi destinare. Se stai leggendo questo ebook e non lo hai

acquistato,tichiediamo, seti piace,di acquistarne ancheunacopia a

pagamento, al fine di poterci permettere di far crescere il nostro lavoro e

di offrirti sempre piùtitolieuna qualità sempre maggiore. Grazieper il

tuo aiuto e per aver rispettato il lavoro dell’autore e dell’editore di questo

libro.

Data larapidità con cui i tooldi sviluppoei linguaggi vengono aggiornati,i contenutidiquesto ebooksiintendono fedeliallo statodell’artealmomento della pubblicazione.

ISBN: 978-88-6574-082-8Segui Area51

Publishing su:

Google Plus

facebook.com/Area51.Publishing

twitter.com/Area51editore

pinterest.com/area51editore

www.area51publishing.com

Page 4: Corso Di Programmazione Per Android Live

www.area51publishing.wordpress.com

Page 5: Corso Di Programmazione Per Android Live

Introduzione alla collana

Android è oggi il sistemaoperativoperdispositivi mobilipiù

diffuso al mondo. Si èimpostosulmercatoin tempi brevissimi

sbaragliando la concorrenza e divenendo una piattaforma di

riferimento quando

si

parla di mobile device. Un’ascesa tantorapida nonè dipesa solamente dalla soliditàdel sistema e dallasemplicitàdi utilizzoofferta agli utenti.Il ruolo chiaveinfatti èstato giocatodalle applicazioni.

Numerosissime,e diuna varietà incredibilmente ampia,leapplicazioni per Android sono il veromotivo che spinge unutentead acquistare questi dispositivi. Proprio in questa direzione si sono

mossi gliideatori di Android che, per incentivare la creazione diApp sempre nuove, hanno sviluppatoun

Market Place di libero

accesso, all’interno del quale chiunque può rendere pubblica la

propriaApp.Inquesto modo sviluppatori ditutto il mondo,nonnecessariamentegrandi softwarehouse o team di sviluppo, maanche sempliciutenti dotatidi grandepassione, sisono cimentatinella programmazione per Android sviluppando centinaia dimigliaia di applicazioni in pochissimo tempo, rendendo ilMarketPlace un luogoincui èpossibile trovare unvideogioco sviluppatoda un colosso delsettoreaffianco all’app creatadallo studente odall’impiegato

nel

proprio tempo libero.Sviluppareapplicazioniper Android nonèlacosa più semplice delmondo; ma col passare del tempo vengono offerti agli sviluppatori

un numero semprecrescente di strumenti utilissimi, chepossonorender loro la vitaestremamentepiù semplice.Che sipossieda un’ideageniale o innovativa,o chesiabbiasemplicemente lacuriosità di sperimentare, la programmazione

Android è la via giusta da seguire perdar libero sfogo allacreatività. Per realizzare qualcosa di creativo, però,non bisogna

Page 6: Corso Di Programmazione Per Android Live

partire da zero, ma sfruttare quegli strumenti che si hanno a

disposizione, mettendoli insieme come meglio si crede. Questa

collana

si

rivolge quindi a chiunque voglia imparare ad utilizzaretali strumenti.Ogni volume, completamente indipendente dagli altri, presenteràal lettorenuovi tassellidel puzzle, offrendouna spiegazione dicome questi possano

essere utilizzati e, dando però per assodate le

nozioni apprese nei volumi precedenti, illustrerà come mettere

insiemeil tutto,per realizzareapplicazioni semprepiùcomplete ecomplesse.

In ognivolume si analizzano quindialcuni strumenti e ilmodo incui questipossano interagire tra loroed essereusati all’internodiun’applicazione, avolte sfruttando ciò chesihagià appreso

precedentemente; evitando però, diessere ripetitivisui concettigià trattati.

I volumisono

divisiin capitoli.Alcunidi essisono interamentededicati all’apprendimento di nozioni teoriche di fondamentale

importanza; altri, allamessa inpratica di tali nozioni per la

creazionediun’appdiper sè completa.È previstaquindi,inogni volume,la realizzazione diuna o piùapplicazioni complete

e funzionanti, con approfondimenti teorici

che consentono al lettore di capire il perché di determinate scelte

anziché altre.Lo scopofinale è quellodilasciareillettore liberodi utilizzareognistrumentoanalizzato, divolume in volume, come megliocrede percreare ciòchepiù gli piace.

Francesco Frascà

Page 7: Corso Di Programmazione Per Android Live

Indice

Come iniziare

Cos’è Android

Xml

Virtual machine

Java

Installare Java JDK

Eclipse

Installare Eclipse su Mac OS X Lion

Installare Eclipse suWindows 7

Page 8: Corso Di Programmazione Per Android Live

Android SDK

Installare Android SDK suMacOSX Lion

Installare Android SDK su Windows 7

Usare gli strumenti di Android in Eclipse

Android Development Tools

Android SDK Manager

Il dispositivo virtuale

Teoria - Le basi eiprimi costrutti

Il linguaggio Java

Caratteristiche del linguaggio

Variabili etipi

Page 9: Corso Di Programmazione Per Android Live

Inizializzare una variabile

Gli operatorimatematici

Gli operatori divisione e modulo

ei

numeri decimali

Incremento, decremento e notazione abbreviata

Il tipo char

Iltipobooleane le condizioni

I costrutti condizionali

Il costrutto if

ifed elseif

ifinnestati

switch

Applicazione - Un risponditore

Page 10: Corso Di Programmazione Per Android Live

interattivo

Primo progetto inEclipse

Il primoavvio diEclipse

Il progetto Android

Dettagli di creazione progetto

Struttura di un progetto

Scrivereilcodice

Programmazione visuale

Avviare l’applicazione

La parte funzionale

Appendici

Codice delle applicazioni

Page 11: Corso Di Programmazione Per Android Live

main.xml

RisponditoreInterattivoActivity.java

ImportareilprogettoinEclipse

Tipo di progetto

Importare il progetto

Esportare il progettoNuovo progetto Java,Input Output

Un workspace apposito

Creare un progetto Java

Un package per l’inizio

Il metodo mainCommenti

Page 12: Corso Di Programmazione Per Android Live

Input e Output

La classe Scanner

Stampare a video

Un esempio di esercizio

Esercizi

Page 13: Corso Di Programmazione Per Android Live

Introduzione

In questo volume vengono analizzatiiprimistrumentinecessari

per cominciare a programmare per Android.

Ad una breve panoramica sul mondo Android, segue una

spiegazione, dettagliatain ogni passo, di comeinstallare tutti glistrumenti necessariper iniziare conla programmazione.

Successivamente vengono illustratiiprimi concetti teorici di Java

che verrano poi utilizzati perrealizzare una primaapplicazionepratica.

L’esposizionedegli argomenti è articolatacome segue:

La PRIMAPARTE fa una panoramica generale sullaprogrammazioneper Android analizzandone brevemente ilfunzionamento; si spiega neldettaglio comeinstallare Java,

l’ambientedi sviluppo Eclipse e la Android SDK; viene inoltre

mostrato come creare un dispositivo virtuale;

La SECONDAPARTE illustra lebasidel linguaggioJava come la

creazione el’inizializzazione di variabili ed analizza icostrutticondizionali dellinguaggio;La TERZAPARTE spiega come realizzare

una

prima

applicazionemolto semplice, un risponditore interattivo,

utilizzandolenozioni teorichetrattate nella parte precedente.La QUARTA PARTE contiene le appendicidelvolume nelle

quali

si trovano indicazioni per utilizzare almeglio Eclipse e una seriediesercizi consigliati per muovere i primi passi nel linguaggio Java.A partiredal prossimo volumetroverai

in appendice il link al

codice completo delle applicazioni progettate e sviluppatenel

corso.

Page 14: Corso Di Programmazione Per Android Live
Page 15: Corso Di Programmazione Per Android Live

PRIMA PARTE

Come iniziare

Page 16: Corso Di Programmazione Per Android Live

Cos’è Android

Android, sviluppatoda Google, nonèsoloun sistema operativo per dispositivimobili. Esso èinfatticostituito da uninsieme di software che, oltre al sistemaoperativo di base, include unmiddleware1

e un ampioassortimento di

applicazioni chiave. La sua diffusione

in

questi ultimi anniècresciuta in modo

esponenziale, non solograzie all’opensource2, ma ancheperviadel kernel3 su cuièbasato,quello diLinux.

Leapplicazioni Android possono essere divise indue parti.

Lepartidinamiche, scritte in Java, si occupano della gestione degli eventi.

Leparti statiche invece, scrittein XML, riguardano le caratteristiche che non

cambianodurante l’esecuzione dell’applicazione, come per esempio la

disposizionedeltesto.

XML

XML (eXtensible Markup Language) èun metalinguaggio dimarkup,ovvero unlinguaggio marcatoreche definisceunmeccanismo sintatticocheconsentediestendereo controllare il

significato di altri linguaggi marcatori come ad esempio

HTML5.

Le applicazioni di Android sono sviluppate all’interno di un framework4che viene

integrato a specifici ambienti di sviluppo come ad esempio Eclipse.

Tramite gli strumenti utilizzati mediante l’SDK, un’applicazione Android viene

trasformata in un codice intermedio che prende il nome di bytecode. Questo

bytecode viene eseguito da un programma chiamato macchina virtuale (Virtual

Machine,VM).Virtual MachineIninformatica

il termine macchina virtuale (VM) indica un software che crea un

ambiente virtuale. Esso simula in tutto e per tutto il comportamento di una

macchinafisica.È quindi possibile eseguire applicazionisulla macchinavirtualeperanalizzareil comportamento che avrebbero interagendocon quella fisica.

Pergli ambienti Android è statascritta una nuovaVM chiamata Dalvik Virtual

Machine (DVM). Ogniterminale Androidhala suaDVMilcui compitoè quello dieseguire il bytecode.

Page 17: Corso Di Programmazione Per Android Live

Essendo laDVMuguale per tuttii dispositiviAndroid, ogniapplicazionepuòessereeseguitasuogni

terminale, indipendentemente dal costruttore e

dall’implementazione.

Unfuturo programmatoreAndroidha bisognodi molti strumentiper iniziare ilsuo percorso di apprendimento.

Tutto quello che serve èperògratuitoe scoprirai come ottenerlo nei capitoli

successivi. Imparerai come installare l’ultima versionedisponibile dell’ambiente di

sviluppo Eclipse e come integrare al suo internogli strumenti necessari alla

programmazione specificaper Android.Java

Gli utenti Mac possono saltare questa parte in quanto Java è già completamente

installato sulle loro macchine.

Android non è un linguaggio di programmazione ma un sistema operativo per

dispositivi mobili costituito da varie parti che approfondiremo in seguito. Per

scrivere applicazioni per Android si utilizza invece Java: un linguaggio di

programmazione orientato agli oggetti creato dalla Sun Microsystem Inc. (oggi

Oracle America Inc.).In ogni e-book troverai uncapitolo dedicatoall’approfondimento diquesto linguaggio.

Richiesta di installazione per Java FX

Page 18: Corso Di Programmazione Per Android Live

Installare Java JDK

La prima cosa da fare è installarela Java JDK (Java Platform, Development Kit).La JDK è un ambiente disviluppo per costruire applicazioni, applets,ecomponenti utilizzandoillinguaggio diprogrammazione Java,indispensabileperprogrammare per Android.

LaJDKinclude strumenti utiliper sviluppare e testare programmi scritti in Java e

per farli funzionare sull’apposita piattaforma.

Scaricare Java JDK è molto semplice. Basta scegliere unodeiseguenti link (subito

dopoessersi iscrittiaOracle), inbasealtipodi sistemaoperativoche utilizzi:

•seiltuo Windows è a32 bit cliccaqui;• se invece è a 64 bit clicca qui.

In entrambii casi otterrai un file.exe. Avvialo eclicca su “Next” due volteperfar

partire l’installazione.Il processo richiederà pochi minuti. Quando possibile fai

clic su “Continue”.

A questo puntoti

verrà chiestodi installare anche Java FX che però non

tratteremo per cui fai clic su “Cancel” e dopo su “Si” (figura sopra).

Verraiora indirizzato allapagina di registrazione delprodotto. Nonèindispensabilepercuipuoianche

chiudere la finestra.

Eclipse

Eclipseè l’IDE (Integrated Development Environment, ambiente di sviluppo

integrato) supportato ufficialmente per losviluppodi applicazioni perAndroid.

Esiste, infatti, un apposito plug-in semplicissimo da installare come vedremo. Col

tempo anche altriIDEcomead esempio NetBeans si sono adeguatieoggisupportano perfettamente questo tipo di sviluppo. Ivantaggi di Eclipsesono

comunquenotevoli: è multi-linguaggio, multipiattaformae soprattuttoèopen

source. Per maggiori informazioni visita il sito http://www.eclipse.org.

Installare Eclipse su Mac OS X Lion

Perscaricare Eclipse scegli uno dei seguenti link:•se

possiedi un

Mac

a 32 bitcliccaqui;•seinvece il tuo Mac è a64bitcliccaqui.Otterraiun file.gz.Faidoppio clicksudiessoper scompattarlo. Trascinainfinelacartella eclipse appena ottenutanella cartella Applicazioni.All’interno di questa

Page 19: Corso Di Programmazione Per Android Live

directory troviamo l’applicazione vera e propria (figura sotto).

Cartella contenente l’applicazione Eclipse su Mac OS

Installare Eclipse su Windows 7

Per scaricare Eclipse scegli uno dei seguenti link:

• se possiedi un PC con Windows a 32 bit clicca qui;

• se invece il tuo Windows è a 64 bit clicca qui.

Otterrai un file con estensione .zip. Per scompattarlo avrai bisogno di un

programma come Winzip o Winrar. Scompatta il file sul tuo desktop con uno di

questi programmi e spostala cartellaeclipse nellatuacartella Programmi.

All’interno di questa directory troviamo il file .exedell’applicazione vera e

propria. Crea un collegamento sul Desktop se vuoi rendere più semplice l’accesso

(figura sotto).

Page 20: Corso Di Programmazione Per Android Live

Collegamento sul Desktop per Eclipse su Windows

Android SDK

In questo momento Eclipse non è ancora pronto per sviluppare la nostra prima

applicazione: per iniziare acreareinostri progetti abbiamo bisognodell’SDK

(Software Development Kit, Kit di Sviluppo Software) che contiene tutti gli

strumenti necessari a realizzare e testare le nostre applicazioni con Eclipse.

Installare AndroidSDK su Mac OS X Lion

Per scaricare Android SDK per Mac clicca qui.

Otterraiun file.zipcheti basterà scompattare. Fatto questo Android SDK può

considerarsi installato ma è consigliabile posizionare la cartella inuna locazioneadeguata.Rinomina la cartellain android-sdk e trascinala nellatua cartellainizio(/Users/tuonome) comemostrato nella figura sottostante.

Page 21: Corso Di Programmazione Per Android Live

Trascinare android-sdk nella cartella inizio

Installare AndroidSDK su Windows 7

Per scaricare Android SDK per Windows clicca qui.

Otterrai un file .exe. Avvialo e segui le semplici istruzioni su schermo fino alla

fine. Prima di premere il tasto “Finish”, assicurati di togliere la spunta a “Start

SDK Manager” (Figura sotto).

Page 22: Corso Di Programmazione Per Android Live

Non avviare Android SDKManager

Usare gli strumenti di Android in Eclipse

Al primo avvio, Eclipse ci chiederà di scegliere in quale cartella vogliamo che sia

localizzato il Workspace, ovvero la cartella in cui verranno salvati tutti i nostri

progetti. Scegli una cartella che reputi sicura e se sei convinto della tua scelta

spunta la casella “Use this as the default anddonot askagain”. Inquesto modo

confermi di voler utilizzare sempre questa cartella ad ogni avvio (sarà comunque

possibile cambiarla in seguito). Clicca infine su “Ok” (Figura sotto).

Page 23: Corso Di Programmazione Per Android Live

Scelta di un Workspace in Eclipse

Eclipse si aprirà con la finestra di benvenuto dalla quale è possibile visionare

tutorial, esempi e molto altro. Se vuoi puoi dare un’occhiata ma ricorda che potrai

sempre accedere a questa finestra in seguito. Quando hai finito chiudi la finestra

“Welcome” e ti ritroverai nella finestra principale di Eclipse (Figura successiva).

Android Development Tools

Ora come ora Eclipse non può ancora fornirti tutti gli strumenti necessari alla

programmazione per Android. Devi prima installare un plugin aggiuntivo:

Android Development Tools (ADT).

Page 24: Corso Di Programmazione Per Android Live

Interfaccia iniziale di Eclipse

1. Clicca su “Help” nella barra dei menù;

2. scegli “Install New Software…”;

Page 25: Corso Di Programmazione Per Android Live

3.tisiaprirà la finestra”Install” dalla quale potrai scaricare e installare i plugin;

4. clicca sul pulsante ”Add”;

5. nel campo “Name” inserisci ADT Plugin e nel campo “Location” inserisci

l’indirizzo https://dl-ssl.google.com/android/eclipse/;

6. clicca su “Ok” ;

Page 26: Corso Di Programmazione Per Android Live

7. attendi fino a quando nella tabella sottostante non compare “Developer Tools”;

8. spunta tutto cliccando su ”Select All” e clicca su ”Next” due volte;

Page 27: Corso Di Programmazione Per Android Live

9. accetta i termini della licenza e clicca su”Finish”.

Page 28: Corso Di Programmazione Per Android Live

A metà installazione potresti ricevere un Security Warning. In tal caso fai clic su

“Ok”.

A questo punto attendi il termine dell’installazione che richiederà alcuni minuti e

quando ti verrà chiesto scegli “Restart Now” che riavvierà Eclipse.

Suggerimento: lo stesso procedimento, con opportune modifiche, può essere

utilizzato per l’installazione di qualunque plugin.

Dopo il riavvio dovrai configurare Android SDK in modo che si integri con il

plugin di Eclipse.

1. Seleziona “Use existing SDKs” e inserisci, nel campo “Existing Location”, il

percorso dellacartellain cuihai precedentemente inseritoAndroidSDK:

/Users/tua_cartella_inizio/android­sdkse sei un utente Mac oppure

C:\Program Files\Android\android­sdkse sei un utente Windows;

Page 29: Corso Di Programmazione Per Android Live

2. clicca su “Next” e nella schermata successiva seleziona “No” e clicca ancora su

“Finish”.

Page 30: Corso Di Programmazione Per Android Live

Verrai informato che sarà necessario installare alcune componenti mancanti

quindi clicca su “Ok”.

Android SDKManager

Adesso Eclipse può creare nuovi progetti Android ed eseguire le nostre

applicazioni ma per iniziare a programmare hai ancora bisogno di alcune

componenti che potrai installare utilizzando Android SDK Manager.

1. Fai clic sul simbolo dell’Android SDK Manager nella barra degli strumenti di

Eclipse (il simbolo con la freccia);

Page 31: Corso Di Programmazione Per Android Live

2. Quando si aprirà la finestra vedrai già selezionante alcune delle componenti che

dovrai installare;

3.faiclicsu “New”

esu

“Updates” perselezionare tutte le componenti;

4.

clicca su“Install

Packages”;

Page 32: Corso Di Programmazione Per Android Live

5. nella finestra successiva spunta “Accept All” e clicca su “Install”.

Il download e l’installazione delle componenti potrebbe richiedere parecchi minuti

a seconda della connessione internet a tua disposizione.

Quasi certamente riceverai alcune segnalazioni di errore o richieste di

autenticazione. Non preoccuparti: si tratta di componenti specifiche per

determinati dispositivi. Fai semplicemente clic su “Close” o su “Cancel” e lascia

che il download termini.

Il dispositivo virtuale

Pertestarele tue applicazionihaibisognodiun

emulatoredidispositivi Android.Questoemulatore prendeilnomedi Android VirtualDevice(AVD) esimulaunveroeproprio dispositivo.

Per crearne uno clicca sull’icona dell’AVD Manager proprio di fianco a quella

dell’Android SDKManager (quellache rappresentaun cellulare)odallabarra dei

menùseleziona “Window > AVD Manager”.1.Siapriràla finestra digestione degliAVD;2.inizialmente nonsonopresenti AVD per cuifaiclicsulpulsante “New…”;

Page 33: Corso Di Programmazione Per Android Live

3. apparirà la finestra di creazione di un nuovo AVD; per il momento ci basta

inserire un nome per il nostro AVD e un Target;

4. in “Name” inseriamo AndroidSimulator4.0.3;

5. in “Target” selezioniamo Android 4.0.3 – API Level 15; abbiamo stabilito che il

nostro simulatore utilizzerà la versione 4.0.3di Android e sarà quindi in grado di

sostenere tutte le funzionalità più aggiornate;

6. lasciamo tutto il resto invariato e clicchiamo su “Create AVD”.

Page 34: Corso Di Programmazione Per Android Live

A questo punto nella finestra di gestione degli AVD troverai a tua disposizione

quello appena creato che userai per testare le tue prime applicazioni.

Se vuoi puoi avviare il simulatore facendo clic sul tasto “Start” e successivamente

su “Launch” (Figura sotto).

Page 35: Corso Di Programmazione Per Android Live

Il dispositivo virtuale in funzione

Page 36: Corso Di Programmazione Per Android Live

SECONDAPARTE

TEORIA

Le basi e i primi costrutti

Page 37: Corso Di Programmazione Per Android Live

IllinguaggioJava

Abbiamo dettoche Java èil

linguaggio di programmazione usato perscrivereapplicazioni Android ma è più corretto direcheJavaè una piattaformadisviluppo,che includeunavasta libreria dicodice riutilizzabile eun ambienteeseguibile con servizi disicurezza e di portabilità.

Caratteristiche del linguaggio

Java ha 2 caratteristiche principali che sono molto importanti:

• è indipendente dalla piattaforma;

•èorientatoaglioggetti.

Funzionamento della JVM

Page 38: Corso Di Programmazione Per Android Live

È indipendente dalla piattaforma perchéun programmascritto in Java vienelanciatosulla

Java Virtual Machine (JVM), che può essere installata su qualsiasi

macchina.

Ilprincipio utilizzatopereseguire un programma Java è illustratoinfiguraprecedente.Ilprogramma

scritto in linguaggio Java viene compilato in Bytecode che ogni

JVMtradurràpoi nel linguaggio macchinaadeguato.Il paradigmadella programmazione orientata aglioggetti permettedi

definire

oggetti software in grado di interagiregliuni con glialtri.

Questoparadigma garantisce unapiùfacilegestionee manutenzione perprogettidigrandidimensioni.Inoltre l’organizzazione delcodice sottoformadi classi (oggetti) favorisce la

modularità eilriusodel codice.Approfondimento: Modularità

Un modulo è un componente di un sistema più vasto, che opera in quel sistema

indipendentementedalleoperazioni di altricomponenti. La modularità è una

proprietàdei programmi che indica ilgrado di suddivisone degli stessi in parti

separate chiamate moduli.

Variabilietipi

Un oggetto in Java è generalmente costituito da unoo più campi opiùsemplicementevariabili.Ininformatica, unavariabileidentifica unaporzione di memoria destinataacontenere deidati,che durante

l’esecuzione del programma verranno modificati.

InJavale variabilisono definiteda un nome e da un tipo di dato.

Ad esempio, int x indica una variabile di nome x e di tipo intero.

Ci sono in Java 8 tipi di base per i dati. Sono tutti illustrati nella tabella

sottostante.

Page 39: Corso Di Programmazione Per Android Live

Tipi di base in Java

Inizializzare una variabile

Una variabile viene inizializzata quando le viene assegnato un valore tramite

l’operatore di assegnamento =.

Esempi di inizializzazione sono:

Come puoi vederenoncisonomolte regole sui nomi che è possibile dare a una

variabile. Le uniche restrizioni che vengono imposte sono l’impossibilità di usare

il carattere _ (underscore) o un numero come primo carattere. In questo corso

seguiremo la convenzione della notazione a cammello che prevede di nominare

una variabile con il primo carattere minuscolo e di mettere in maiuscolo ogni

iniziale di parola successiva per i nomi composti da più parole come nell’esempio

del double: mioNumeroConVirgolaMobile.

Page 40: Corso Di Programmazione Per Android Live

Attenzione: CaseSensitiveJavaèunlinguaggio Case Sensitive:lavariabile

mioNumero è diversa da

MIONUMERO o da mioNUMERO.

Molti dei primierrori cheti capiterà di fareriguarderanno questo tipodiincongruenzequindi presta attenzione. Lanotazionea cammello tiaiuteràad evitare

questierrori.

Di certo avrai notato che ogni istruzione (una riga di codice) che è stata scritta

termina con un ;.

Javainfatti, interpreta questo carattere come FINEISTRUZIONE, percui senonlo avessimo inserito, due righe successive sarebbero state interpretate come

un’unica istruzione.

Gli operatori matematiciAparte chareboolean,

tutti i tipi di base in Java sono numerici, rappresentano

quindi numeri, interi o decimali, su cui è possibile effettuare tutte le più comuni

operazioni che sono raccolte nella tabella sottostante.

Operatori numerici

Gli operatori divisione e modulo einumeridecimali

Page 41: Corso Di Programmazione Per Android Live

Meritanoparticolare attenzionegli operatori⁄ e %.L’operatoredidivisione ⁄ agisce inmodo diversoinbase ai tipi su cui opera:se

viene applicatoaun numero decimalee se ilsuo risultato è memorizzato inunnumero decimaleesegue unanormale divisone;seinvece vieneapplicato anumeri interi eseguirà ladivisione intera.Segui l’esempioper capire meglio

questo concetto:

Come puoivedere, nonostante aebsiano dei double,il valore di b viene tagliato

al valore di 2.0. Questo perché 10 e 4 sono numeri interi. Affinché il risultato sia

decimale è necessario che almeno uno dei due operandi sia decimale. Puoi

scrivere quindi a = 10 ⁄ 4.0 o a = 10.0 ⁄ 4 e ovviamente a = 10.0 ⁄ 4.0. In tutti questi

casi a sarà uguale a 2.5.

Approfondimento: Notazioni per i decimali

Puoi scrivere un numero decimale omettendo le cifre prima o dopo la virgola. Ecco

qualche esempio:

•scrivere 5.è comescrivere 5.0•scrivere .4è come scrivere 0.4L’operatore modulorestituisce invece il restodella divisione intera come puoivedere nel seguente esempio:

Page 42: Corso Di Programmazione Per Android Live

Questo operatore può tornare molto utile quando si parla di array e strutture dati

più avanzate come le hashtable.

Incremento, decremento enotazione abbreviata

Gli operatori di incremento e decremento sono delle abbreviazioni di operazioni

più complesse. Nella tabella sottostante puoi vedere vari modi diversi di ottenere

lo stesso risultato.

Incrementi e decrementi

Le forme abbreviate x+ = 1 e x- = 1 non si usanosoloper operatoridiincremento

ma possono essere utilizzate ogni volta che il valore di una variabile deve essere

modificato partendo dal valore precedente. Ecco qualche esempio:

• x+ =4èequivalente ax=x+ 4

• x* = 3 è equivalente a x = x * 3

• x- = y èequivalenteax= x - y

Tra l’operatore

x++e

+ + x (e lo stesso vale perx-- e - - x) c’è una sottile

differenza: laprimaforma incrementa il valoredellavariabile dopo averlo letto,

mentre la seconda lo legge dopo averlo incrementato. Per capire cosa ciò implichi

osserva la porzione di codice seguente:

Page 43: Corso Di Programmazione Per Android Live

Il tipo char

Il tipo charnon è un tipo numerico: rappresenta un carattere unicode come ad

esempio una lettera.

Quando si inizializza una variabile di questo tipo, il valore va messo tra apici (’…’).

Oltre a lettere e numeri un char può anche rappresentare caratteri speciali come _

, % , / e altri.

Puòsembrare strano ma anche su questo tipo sono definite alcune operazioni

matematiche, anche se l’insieme di operazioni possibili è molto ridotto. È

possibile ad esempio incrementare o decrementareun caratterediunacerta cifra

come nel codice seguente:

Page 44: Corso Di Programmazione Per Android Live

Il tipo booleanele condizioni

Un tipo di base particolare inJavaè boolean,che può assumere solo due valori:

trueo false.

Ovviamenteil valore diuna variabile intnonèdefinibile solo come 5 o42ma

puòessere anche 5 +4,6* 8 o 12 ⁄4. Allo stesso modo un booleannon deveessere necessariamente true o false ma puòessere il risultatodi unacondizione.

Nella forma più semplice, una condizione è espressa come valore operatore

valore(ad esempio x < 5 restituirà truenel caso in cui x sia minore di 5 e

falsealtrimenti).

I possibili operatori utilizzatisono rappresentati nellaprima delletabelle che

seguiranno.È anche possibilecombinare

insieme più condizioni per formarne una più

articolata. Perunirepiù condizioni si utilizzano i connettivi logici AND (in Java

indicatocon &&),OR (indicato con||)e NOT (indicato con!).Percapire comeverranno combinatele condizioni siusano le tabelle diveritàmostrate nelletabellesottostanti.

Operatoribooleani

Tabelle di verità

Page 45: Corso Di Programmazione Per Android Live

Ad esempio se x = 5:

• x < 6&&x < 3 è false

•x<6||x<3è

true

• !(x < 6) è false

Puoi usare le parentesi per creare espressioni matematiche o condizioni più

complesse.Adesempiolacondizione(!(x

< 6&&x < 3))&&x > 2 è true.

Quando un’espressione diventa troppo complessa puoi usare le variabili booleane.

Ecco un esempio:

Approfondimento: Corto Circuito

Fai attenzione a non confondere i connettivi logici && e || con & e |.

I primi sonodettioperatori a corto circuitoperché, nelcaso dell’operatore &&,la

seconda condizione non viene verificata se la prima è falsa (il risultato sarà falso

comunque); nelcaso dell’operatore || la seconda condizione non viene verificata se

la prima è vera.

& e | fannoinveceuna verifica completa.

Page 46: Corso Di Programmazione Per Android Live

I costrutti condizionali

Icostrutti condizionali servono ad indicare al programma se deve svolgere alcuneistruzioni anzichéaltre.

In Java ci sono due costrutti condizionali fondamentali:if, conalcunevariantieswitch.

Il costrutto if

L’ifè il costrutto condizionale di base e la sua sintassi è molto semplice:

Java intrepreta iltuttoinquesto modo: se la condizione è verificata, esegue le

istruzioni tra parentesi graffe, altrimenti salta l’intero blocco.

Suggerimento: leparentesigraffe che racchiudono le istruzioni da eseguire nel

caso la condizione sia verificata, possono essere omesse, ma solo nel caso che vi sia

una e una sola istruzione. Il consiglio è di inserirle sempre e comunque per rendere

il codice più leggibile.

ifed elseif

Quandosiaggiunge la parola chiave elseil significato dell’ifdiventa:selacondizione è verificata,eseguile istruzioni traleprime parentesi graffe,altrimentieseguile istruzioni traleparentesi graffe successivead else:

Page 47: Corso Di Programmazione Per Android Live

È anche possibile, ma non sempre utile, inserire più condizioni con la clausola

else if:

In questo modo,le istruzionidell’ultimoelse, vengono eseguite solamente nel

caso in cuitutte le altre condizioni risultino false.

ifinnestati

Puoi anche inserire più ifuno dentro l’altro per verificare più di una condizione:

In questocaso l’istruzione viene eseguita solo se si entra nel secondo if, il che

Page 48: Corso Di Programmazione Per Android Live

puòavvenire solo nelcaso incui si siaprima entratinel primo if.Questo

particolare caso può anche essere riscritto come segue:

switch

In Java esiste anche un ulteriore costrutto condizionale: lo switch.

La sua sintassi è semplice:

sceltadeve essereunavariabile intera. Il costrutto controlla il valore della

variabile scelta ed esegue le istruzioniapartiredal casoapposito. Se la variabile

scelta vale 3 inizierà ad eseguire le istruzioni a partire da case 3:.

Nel caso in cui il valore della variabile non sia nessuno di quelli contemplati nei

vari casi si eseguono le istruzioni a partire da default:.

La speciale istruzionebreakserveperusciredalcostrutto.Seil programma entra

nel caso 2, inizia ad eseguire le istruzioni partendo da quel punto e, trovata

l’istruzione break, riprende il codice da dopo lo switch; se l’istruzione non ci

fosse proseguirebbe con le istruzioni contenute in case3:e così via.

Lo switchnon è un costrutto indispensabile: può essere sempre sostituito da

una serie di ifin cascata. Il caso precedente ad esempio può anche essere scritto

così:

Page 49: Corso Di Programmazione Per Android Live

Ovviamente la forma switchè più sintetica e quindi andrebbe preferita dove

possibile.

Page 50: Corso Di Programmazione Per Android Live

TERZA PARTE

APPLICAZIONE

Un risponditore interattivo

Page 51: Corso Di Programmazione Per Android Live

Primo progettoinEclipse

In questa parte creeremo un primo progetto inEclipse:

un

risponditore interattivo.Saràuna semplice applicazioneche risponde interattivamenteall’utente inbaseaidati dalui immessi.Perfarti un’ideadelrisultato finale guardalafigura sottostante.

Risultato finale

Page 52: Corso Di Programmazione Per Android Live

Ilprimo avvio

di

Eclipse

All’avvio di Eclipsepotrai visualizzare l’interfaccia principale delprogramma, divisain 5parti principaliche analizziamo velocemente(figura sotto).

Interfaccia iniziale di Eclipse

1. Nella top bar vi sono due sezioni distinte: i bottoni di accesso rapido (a sinistra) e

i tasti di selezione prospettiva (a destra). Questi ultimi inizialmente non li userai ma

servono per modificare la disposizione delle varie sottofinestre per renderti lo

svolgimento di un determinato compito più semplice. I bottoni di accesso rapido li

utilizzerai più spesso perché ti consentono di svolgere operazioni molto utili in poco

tempo. In seguito analizzeremo le funzioni dei singoli bottoni.

2. Sul lato sinistro dell’interfaccia trovi il “Package Explorer” dove di volta in volta

verranno inseriti i tuoi progetti. Ora ovviamente è ancora vuoto.

3. In basso hai invece una serie di schede utili a monitorare il tuo lavoro. La scheda

“Console” in particolare, ti avviserà di eventuali errori e potrai anche usarla per

capire se il lavoro sta procedendo bene.

4. La sezione 4 è utile per tenere sotto controllo più schede contemporaneamente

Page 53: Corso Di Programmazione Per Android Live

ma peroratibasterà visionarela “Console”.

5.Ilpannello centrale èquello che contiene l’editorditesto doveverrannovisualizzatii file aperti chepotrai modificare scrivendo iltuocodice.

Il progetto Android

Percreareunnuovo progettoAndroid ci sono varie possibilità. La scelta più

semplice prevede la pressione di un pulsante nella top bar: appunto il pulsante

“New android project” . Puoi anchescegliere, dallabarra dei menù, “File”>“New”> “Project”edopo scegliere,dalla finestra di selezioneAndroid eAndroidProject (figura sotto); infine cliccasu“Next”.

Page 54: Corso Di Programmazione Per Android Live

Selezione di un nuovo progetto Android

Dettaglidi creazioneprogetto

Il wizard di creazione progetto è molto vasto e permette di specificare un gran

numerodi parametri.

Le finestre principali sono tre:

Create AndroidProject

1. Nel campo “Project Name” devi inserire il nome del nuovo progetto; questo sarà

anche il nome della cartella principale associata al progetto; inserisci

RisponditoreInterattivo;

2.itre RadioButtons successiviti permettono di scegliere se creare un nuovo

progetto dazerooseesiste giàunacartella da cui prendere i dati; la terza opzione ti

permette di creare unprogetto partendo da

un

esempio; lascia selezionata la primaopzione percreare unnuovo progetto;3.nel campo “Location” si inserisce il percorsodella cartellachedovrà contenereilprogetto;lascialaspuntasu“Use

default location” per specificare che vuoi che il

progettovengasalvatonelworkspace che hai indicato durante il primo avvio di

Eclipse;

4. in un prossimo e-book analizzeremo la possibilità di creareworkingsets ma per ilmomento lascia iltutto invariato;5.cliccasu “Next”.

Page 55: Corso Di Programmazione Per Android Live

8 n 0 New Android Project

Create Android Project

Select project name and type of project

_ r“PI’OJECI Name: Risponditorelnterattivol

(a Create new project in workspace

O Create project from existing source

O Create project from existing sample

[2] Use default location

Location: IUsers/sviluppatoreandroid[Documerits[androidProjects/Ris; ‘ Browse“;

Working sets

0 Add project to working sets

Working sets: Cl ‘ Select...

® 1‘_»m>1 i:

Page 56: Corso Di Programmazione Per Android Live

SelectBuild TargetInquesta finestradovraiselezionarela

versione diAndroid sucuidovrà essereeseguita l’applicazione.Lasciala spunta sull’ultima versione (Android4.0.3) e cliccasu“Next”.

Page 57: Corso Di Programmazione Per Android Live

8 " 69

Select Build Target

Choose an SDK to target

Build Target

Target Name

New Android Project

Vendor

__ UVV8ILM_ÙVWÎC II I\..

C] DTS Add-On

C] DTS Add-On

C] DTS Add-On

O Real30 Add-On

O Real30 Add-On

C] CALAXY Tab Addon

C] GALAXY Tab Addon

C] Android 2.3.3

C] Google APls

C] Intel Atom x86 System...

C] DTS Add-On

C] DTS Add-On

C] DTS Add-On

C] Real3D Add-On

C] Real3D Add-On

C] Real3D Add-On

C] EDK 2.0

C] Android 3.0

0 Google APls

C] Android 3.1

0 Google APIs

O Android 3.2

C] Google APIs

O Android 4.0

C] Google APIs

121 Android 4.0.3

“2 Google APIs

Android + Google APIs

O Android 1.6

0 Google APIs

C] Android 2.1

0 Google APIs

C] Android 2.2

0 Google APIs

® 1_»=»«>‘| |‘

Android Open Source Project

Google Inc.

Android Open Source Project

Google Inc.

Android Open Source Project

Google Inc.

KYOCERA Corporation

KYOCERA Corporation

KYOCERA Cofpo'nnon

LCE

LCE

Samsung Electronics Co.. Ltd.

Samsung Electronics Co.. Ltd.

Android Open Source Project

Google Inc.

lntel Corporation

KYOCERA Corporation

KYOCERA Corporation

KYOCERA Carporation

LC.E

LGE

LGE

Sony Ericsson Mobile Communicatio...

Android Open Source Project

Google Inc.

Android Open Source Project

Google Inc.

Android Open Source Project

Google Inc.

Android Open Source Project

Google Inc.

Android Open Source Project

Platform

1...!

1.6

1.6

2.1

2.1

2.2

2.2

2.2

2.2

2.2

2.2

2.2

2.2

2.2

2.3.3

2.3.3

2.3.3

2.3.3

2.3.3

2.3.3

2.3.3

2.3.3

2.3.3

2.3.3

3.0

3.0

3.1

3.1

3.2

3.2

4.0

4.0

4.0.3

4.0.3

commoamooooouoowuààtà 'N<0

v-‘r-‘v-‘r-‘r-‘v-‘r-‘v-‘r-‘r-‘r-‘r-‘r-n-r-r-‘t-‘r-‘HH U1U1JààU-IUJNNt-‘t-‘OOOOOOOOOO

Finish

Page 58: Corso Di Programmazione Per Android Live

ApplicationInfo1.Inquest’ultima schermata dovrai inserire ilnome dell’applicazione chenondevenecessariamenteessere lostesso nome del progetto; questo nome appariràneldispositivo quandodovrai avviare l’applicazione; inserisciRisponditore Interattivo;

2. i package sono delle cartelle che identificano univocamente i file al loro interno;

ognipackage deveavere unnome diverso quindi èbuonanorma nominareunpackage come com.tuoNome.nomeProgetto, inserisci perciònel campo“PackageName” com.tuoNome.risponditoreInterattivo;

3.lascia invariato il campo“CreateActivity”:l’argomentosaràoggetto distudioinunafase piùavanzatadelcorso;

4. il campo “Minimum SDK” stabilisce che un dispositivo Android, per eseguire

l’applicazione, dovrà necessariamente essereaggiornato almenoa questaversione;lascia 15: l’ultima versione;

5. perora nonti interessa creare un progetto test quindi tralascia questa parte;

6. cliccasu “Finish”.

Page 59: Corso Di Programmazione Per Android Live

e n 0 New Android Project

Application Info

Configura the new Android Project

ADDIÌCMÌOH Nameî Risponditore Interattivo

Package Name: com.sviIuppatoreAndroid.risponditorelnterattivo

[g Create AclivitYl Risponditorelnterattlvohctivity

Minimum SDK: 15 v.

O Create a Test Project

Test Project Name: RisponditorelnterattivoTest

Tesl Application: Risponditore Interattivo Test

Test Package: com. sviluppatoreAndroid.risponditorelnte rattivo.te st

C?) I <Back \ Next> \ Cancel

Page 60: Corso Di Programmazione Per Android Live

Struttura di un progetto

Come puoi notare,neltuo “Package Explorer”èora visibileilprogettoRisponditoreInterattivochehai appena creato. Faiundoppio clicper espanderlo.Noteraiunaseriedifilesecartelle che sono state autogenerate (Figura sotto. Li

analizziamo ora brevemente).

Struttura diunprogettoAndroid

src = Nella cartella src/ (source, codice)inseriraituttoil codice Java che governerà

la parte dinamica della tua applicazione. Peroratrovi solo la classe relativa

all’activity principale del progetto nel package chehaicreato precedentemente (non

preoccuparti se questi concetti ti sono ancora astratti, presto capirai meglio).

res = In Android, alcune delle informazioni (risorse) relative al progetto vengono

memorizzate in files di configurazione

esterni al codice. Il vantaggio è che non sarà

Page 61: Corso Di Programmazione Per Android Live

necessario modificare grosse porzioni di codice qualora si decidesse di modificare

una risorsa.

•Nella cartelladelle risorse res/ puoi trovare le cartelle drowable, dove

memorizzeraiicone edimmagini perivariformatidi

dispositivo.

• Nella cartella layout/, troverai i documenti XML che definiscono le componenti

GUI (componentidi interfacciagrafica) chevengono utilizzatenell’applicazione.• Nellacartellavalues/ invece,vannoinserite lerisorse XML chedefinisconovariabili evaloricome ad esempio stringhe, interi etante altre tipologie didati.

gen=È necessario che cisiaun pontetrale risorseXML chedefiniscono GUI oparticolari valoridi variabili, e

il

codiceJavache scrivi.Questo ponteè realizzato

dallaclasse R.javache sitrova nel tuo package all’internodella cartella gen/. Questa

classe è generata automaticamente dal plugin ADT ogni volta che viene aggiunto un

elemento allastrutturadiun documento XML.AndroidManifest.xml = Questofilecontiene tuttele informazioni che abbiamospecificato nella creazione del progetto. Lo scopo del documento èquellodidescrivere al dispositivo l’applicazione che dovrà eseguire, indicandonelecaratteristiche fondamentali, comeilnomeel’icona associata.Android 4.0.3 =Questo oggetto rappresentalalibreria utilizzata.

Ciò sta ad

indicare che per questoprogetto abbiamo sceltodi utilizzare le API dell’ultima

versionediAndroid(appuntola4.0.3).Approfondimento: API

Coniltermine Application ProgrammingInterfaceAPI (Interfaccia diProgrammazione di un’Applicazione) si indicaogniinsiemedi procedure disponibili

alprogrammatore. LeAPIpermettonodi evitareai programmatori di riscrivere ogni

volta tutte le funzioni necessarie al programma dal nulla.

Scrivere il codice

Inizierai adesso a programmare, dividendo il lavoro in 2 fasi: nella prima creerai

l’interfaccia grafica dell’applicazione e nella seconda modificherai il codice che le

permette di funzionare.

Programmazione visualeAdotterai,inquesta fase, il paradigma di programmazione visuale per inserire icomponenticheformeranno la tua interfacciausandoi documenti xml della cartellares/.

Page 62: Corso Di Programmazione Per Android Live

Accederealfile main.xml1. Fai doppio clic sul file main.xml nella cartella layout/;

2. siaprirà l’editorditesto nella vista centrale dello schermo;

3. al momentola scheda attivaè “Graphical Layout”;cliccasulla scheda“main.xml”in bassoperattivare la visione classica diun documentoxml.

Cancellare la TextView

La struttura del documento

nonti sarà molto chiara probabilmente. Quello che puoi

notare è l’elemento TextView:

Page 63: Corso Di Programmazione Per Android Live

Dovraicancellare questo elemento peraggiungerne tre nuovi.

Inserire oggetti nella GUI

1.Inserisciun elemento EditText all’internodel qualel’utentedovrà inserireilsuonome:

2. ora inserisci un pulsantechedovràesserepremutounavolta inserito un nome

affinché l’applicazione possarispondereall’utente:

3. l’ultimo elemento da aggiungere è una TextView che visualizzerà il saluto finale:

Page 64: Corso Di Programmazione Per Android Live

Oggetti Usati

EditText = L’oggetto EditText è un comunissimo campo di testo: una scatola vuota in

cui l’utente può digitareciòche vuole.

La proprietà hint serve a definire un messaggio iniziale, viene visualizzato di colore

grigio chiaro e quando si comincia a scrivere scompare.

Per maggiori informazioni clicca qui.

Button = L’oggetto Button è il semplice pulsante, utilizzato spesso per dare via a delle

operazioni.

Per maggiori informazioni clicca qui.

TextView = L’oggetto TextView rappresenta un’etichetta di testo che serve per

visualizzare deltesto semplice sullo schermo.

Per maggiori informazioni clicca qui.

Quando hai finito salvailtuo lavoro cliccando sull’apposito pulsante o premitasto

Maiuscole+ cmd+S suMacotasto Maiuscole +ctrl+ S su Windows.

Page 65: Corso Di Programmazione Per Android Live

Avviare l’applicazionePuoiavviare

l’applicazione per vedere fin da subito l’interfaccia grafica che hai

realizzato.

Clicca col tasto destro sulla cartella principaledel progetto,seleziona“Run

As” einfine “Android Application” (Figura sotto).

Avviare l’applicazione

Ora però se clicchi sul pulsante “Saluta” non succede nulla. Devi unire all’interfaccia

grafica il codice Java, che darà un significato logico a quello che abbiamo

semplicemente dichiarato visivamente.

Come forseavrai capito, le righe che cominciano in android: per ogni oggetto sono

delle proprietà.La proprietà hint dell’oggetto EditText indicailtesto

che appare nel campo di testo

prima di iniziare a scrivere.

Le proprietà text del pulsante e dell’etichetta invece, rappresentano proprio il testo

visibile degli oggetti.

Le altre proprietà riguardano le dimensioni e avrai modo di analizzarle

Page 66: Corso Di Programmazione Per Android Live

successivamente.Perora concentratisulleproprietà id. android:id identifica univocamenteun

oggetto dell’interfacciaepuò essere usato per relazionarti con l’oggetto stesso,

quando scrivicodice Javausando il metodo findViewById(R.id.nomeId).

La parte funzionale

1. Apriilfile RisponditoreInterattivoActivity.java;

2. aggiungi le seguente righe di codice per dichiarare le tre variabili che

rappresenteranno itreoggettidell’interfaccia:

3. modificalerighe dentro leparentesi graffe come segue:

Page 67: Corso Di Programmazione Per Android Live

4. inserisci poi tutti gli import necessari all’inizio del codice:

Page 68: Corso Di Programmazione Per Android Live

Suggerimento: import veloce

Se non avessi inseritolerighediimport avresti ricevuto un messaggio di errore dovuto

al fatto che il programma non avrebbe riconosciuto gli oggetti utilizzati. Un modo

rapido per scrivere le righe import relative agli oggetti che utilizzi è usare una

scorciatoia da tastiera. Prova a cancellare le righe in questione e quando noterai

questo simbolo di errore premi contemporaneamente cmd+shift+o (o ctrl+shift+o)

per far riapparire la riga import e farlo sparire.

L’applicazione è pronta ma prima di avviarla vediamo di capirci qualcosa.

Hai dichiarato tre variabili: campo, mioBottone, e saluto.

Haipoiassegnatoa queste variabili, itreoggetti presenti nella GUI che hai creato

conxml,usandoilmetodo findViewById.

Infine hai semplicemente assegnato un’azione alpulsante mioBottone. L’azioneconsiste solo nel prelevareiltesto inserito nell’EditText emodificareil testodell’etichetta di conseguenza. Se il nome è vuoto l’etichetta sarà “Ciao Nessuno”,

altrimenti sarà “Ciao nomeInserito”.

Quandosei pronto salvailtuo lavoro ed avvial’applicazione (Figura sotto).

Congratulazioni!

Page 69: Corso Di Programmazione Per Android Live

L’applicazione in funzione

Page 70: Corso Di Programmazione Per Android Live

QUARTA PARTE

Appendici

Page 71: Corso Di Programmazione Per Android Live

Codice delle applicazioni

In questa appendiceviene mostratoil codicedei files che sonostati modificati

all’interno del progetto.

main.xml

RisponditoreInterattivoActivity.java

Page 72: Corso Di Programmazione Per Android Live

package con.sviluppatoreAndroid.risponditorelnterattivo;

import android.app.Activity;

import android.os.Bundle;

import android.text.Editable;

import android.viev.View;

import android.view.Viev.ÙnClickListener;

import android.widget.8utton;

9 import android.vidget.EditText;

10 import android.widget.TextView;

Il

12 public class RisponditorelnterattìvoActivity extends

OGbUÙ

q

Activity {

I!

N EditText campo;

u Button mioBottone;

u TextView saluto;

11

IO /" Called when the activity ia fìrst created. */

w 00verride

m public void onCreate(Bundle savedlnstance5tate) {

n super.onCreate(savedlnstanceState);

n setContentVìev(fl.layout.main);

n campo = (EditText) this.findViewByld(R.id.campoNome

);

n mioBottone I (Button) thia.findViev8yld(k.id.

bottone);

u saluto I (TextViev) this.findViewByld(fl.id.

testoSaluto);

mioBottone.set0nClickListener(new OnClickListener()26

{

n public void onClick(Viev arg0) {

n Editable nome = campo.getîext();

n if (nome.length() < 1) {

m saluto.setText("Ciao Nessuno”);

sa } else {

n saluto.setText("Ciao "+nome);

n }

u }

u });

x }

w }

Page 73: Corso Di Programmazione Per Android Live

Importare il progetto in Eclipse

In questa appendice viene illustrata la maniera più semplice di importare unprogetto completonelproprio workspacedi Eclipse.

Tipo di progetto

Unprogetto AndroidperEclipse viene reso disponibile in vari formati a seconda

della funzione chesenevuole fare.

Nelnostrocaso loscopoèdi importare unprogetto nel workspace pereseguirlo,visualizzarneil codice per confrontarlo conquello da noi scritto, ed eventualmenteapportarealcune modifiche.

Il formato più comodo per questo scopo è unarchivio.ziped è infattiquesto ilformatoscelto.Nellesezioni successive verrà quindi spiegatocome importare unprogetto .zipdentroil workspacecome sefossimostati

noi a scriverlo.

Importare il progetto

Una volta che si possiede il file .zipil procedimento è molto semplice:

1.clicca coltasto destrosul“Package Explorer” escegli “Import”;

Page 74: Corso Di Programmazione Per Android Live

2. scegli General e successivamente Existing Projects into Workspace;

3. clicca su “Next >”;

Page 75: Corso Di Programmazione Per Android Live

4. scegli “Select archive file:”;

5. inserisci il percorso del file .zipdel progetto o clicca su “Browser” e seleziona il

percorso corretto;

6. clicca su “Finish”.

Page 76: Corso Di Programmazione Per Android Live

Al termine dell’operazione potresti dover correggere alcuni errori dovuti

all’importazione. Per farlo clicca sul progetto col tasto destro e seleziona “Android

Tools” e poi“Fix Project Properties”.

Page 77: Corso Di Programmazione Per Android Live

Esportare il progetto

Potrebbe capitarti di voler esportare un tuo progetto in modo da realizzare un file

.zipche glialtri potranno poi importare.

1. Clicca col tasto destro sulla cartella principaledelprogettoe scegli “Export”;

Page 78: Corso Di Programmazione Per Android Live

2. scegli General e successivamente Archive File;

3. clicca su “Next >”;

Page 79: Corso Di Programmazione Per Android Live

4. scegli “Select archive file:”;

5. nel campo “To archive file:” inserisci il percorso in cui vuoi che venga salvato il

progetto o clicca su “Browser” e selezionalo visivamente;

6. clicca su “Finish”.

Page 80: Corso Di Programmazione Per Android Live

Nuovo progetto Java, Input e Output

Per svolgere gli esercizi consigliati in questo volume hai bisogno di alcune

conoscenze di base che vengono fornite in questa appendice.

Un workspace apposito

Per prima cosa dovremmo creare un nuovo workspace per tenere separati i

progetti Java da quelli per Android.

1. Dalla barra dei menù seleziona “File”, “Switch Workspace” e “Other...”;

Page 81: Corso Di Programmazione Per Android Live

2. inserisci il percorso che preferisci per il nuovo workspace e clicca su “Finish”.

Creare un progetto Java

Page 82: Corso Di Programmazione Per Android Live

Cosìcome perAndroid, anchein Javadovrai creare un nuovoprogetto all’interno

delquale inserire i tuoi packages e tuoi esercizi.1.Clicca col tasto destro sul “Package Explorer”;

2.seleziona“New Java Project”;

3. nel campo “Project name:” inserisci Esercizie clicca su “Finish”.

Page 83: Corso Di Programmazione Per Android Live

Un package per l’esercizio

Per ogni esercizio verrà predisposto un package: una semplice cartella che conterrà

Page 84: Corso Di Programmazione Per Android Live

tuttele classi utilizzate nell’esercizio (i primi esercizi saranno composti da un’unica

classe).1.Clicca col tasto destro sulla cartella “src” delprogetto “Esercizi”;

2.scegli “New”e successivamente“Package”;

3. nel campo “Name:” inserisci esercizio1 e clicca su “Finish”.

Page 85: Corso Di Programmazione Per Android Live

Nel package esercizio1 inserirai ora una classe che rappresenterà il programma

Java che dovrà essere avviato.

1. Clicca col tasto destro sul package “esercizio1”;

2. scegli “New” e successivamente “Class”;

Page 86: Corso Di Programmazione Per Android Live

3. nel campo “Name:” inserisci Esercizio1e clicca su “Finish”.

Page 87: Corso Di Programmazione Per Android Live

NB: Ricorda che ogni classe deve avere un nome che comincia per lettera

maiuscola.

Il metodo main

Page 88: Corso Di Programmazione Per Android Live

Affinché unaclasse diventi unprogramma eseguibile ènecessario definire ilmetodo main.Non è importantealmomentosapere cos’èun metodo ocapire perbene la sintassi della sua definizione. Ciò che conta è sapere che quando una classe

viene eseguitoparte ilcodice contenutonel corpodelmetodo main:

Puoi trovare una spiegazione visiva di tutto il processo di creazione della classe e

della scrittura del metodo main cliccando qui.

Commenti

Per un codice che si possa leggere e capire facilmente è sempre consigliabile l’uso

di commenti.I commenti sonorighedi testoche non vengono interpretatedalcompilatore del linguaggio. Svolgono due funzioni fondamentali: permettono ad

altri dicomprendere al voloilcodice scritto da te,econsentono ate di riprendere

un codice scritto a distanza di anni e di capirne subito il significato.

I commenti in java possono essere scritti su una riga o su più righe:

Esiste unulteriore tipodicommento

che

verrà trattato nei volumi successivi

Input e Output

Utilizzare per bene le periferiche di Input e Output sarà oggetto dei volumi

Page 89: Corso Di Programmazione Per Android Live

successivi maperun corretto svolgimento degliesercizi propostiè necessario

conoscere qualchesistema che permetta all’utentedi interagirecol programmae divederne il risultato per cui in questa sezione vengono illustrati i modi piùsemplicidiinserireun input datastiera e leggereun outputsulloschermo.

La classe Scanner

La classe Scanner La classe Scanner è un utile strumento fornito da Java per

gestire l’input da tastiera. Non ci interessa sapere come è strutturata e tutte le

funzioni che può svolgere. Nei nostri esercizi dovremmo soltanto leggere alcuni

datispecifici datastiera.Ecco comeusarla:

Stampare a video

Quando siparladi fare una stampaavideosiintendedi far apparire sul monitor

del computer (nel nostro caso nella console di Eclipse) un qualunque testo.Per fare

questo in Java esiste un’istruzione molto semplice da usare:

System.out.println(“Testochevuoifar apparire”).

Se il testodeve dipendere daivaloridialcune variabili questenon vanno inserite

tra virgolette:

Page 90: Corso Di Programmazione Per Android Live

Un esempio di esercizio

Vediamo come usare ciò che abbiamo appreso in questa appendice per scrivere un

Risponditore interattivo in Java. Crea il package risponditoreInterattivo e la classe

RisponditoreInterattivo all’interno.Diseguitoè riportato il codice per il metodo

main.

Per eseguire il programma clicca col tasto destro sulla classe

RisponditoreInterattivo nel “Package Explorer”, scegli “Run as...” e

successivamente “Java Application”.

Page 91: Corso Di Programmazione Per Android Live

II: ha M m Manu M ' mva Q

fi_flo _._mJ-M««Mmmmwwwwmffl-.

,f2'f"- jbì;0 Bfldlb'0'q.’ ÙG' e394'1v . . ‘ i l. ' -'>\>' ° EI&'»«

‘mn m»u\kw; @ I a: 0 A64...

0 mduwlumflxn (

2n\l non (“mq [] n.) (

o .n gnu-L. Open I) . o m km«hfln.w);

Open th D '

Op" îm vathv M ltpflnth( Os.uo H un non. c ');

www \‘uw > - - n.nfl0: '

| .C°m wc 1.-.4u0.0( @(MMGW ml

- w!.ptuìn('hco W'); (mumuuvdhul.(MQUÙIM N0fl'lt non cv ;3.| o «da» J

I .P15’-‘ ‘V 0.wt<wzuln(°tuoo ‘ o un); ' \. \

X Oflflc D ‘29” a * - °

\

_ 'lembom(ofnut \’0&4 | \ ‘ÈÀ\\'OQ ,

.wu mh . . mev-nvmw

’ C

5°..." m . 6.”..ijan

MK1M ÎÙT D . w<60q‘bgw«s

mlmporlm

|.J Elmft_

Ilr‘rvmn ’

D«Luabom 0

I } Mruh N

À}M9f\ Worimq ha I |’ c =' 7 . a}Î ’0 v fl;- U

ÌUHM > lillanon \‘ÙXJ

Doùq M u

y‘w“. MCWU'IIÌOWSM

Yum D

Comun mm D

mm:mm >

buon Mm lcul Know...

- W MM: R! ,.

_

Page 92: Corso Di Programmazione Per Android Live

Esercizi

In questa appendice trovi una serie di tracce di esercizi da

svolgere.Ticonsiglio di svolgerli tutti perché servono a

consolidare quanto visto in questo primo volume rendendoti la

vita molto più semplice in seguito.

Esercizio 1: chiedere all’utente di digitare 2 numeri interi estampare avideola lorosomma.

Esercizio 2: chiedere all’utente di digitare 2 numeri e stampare a

video la relazione tra i due (a > b, a < b o a = b).

Esercizio 3: chiedere all’utente di digitare 3 numeri e stampare a

video il maggiore dei 3.

Esercizio 4: chiedere all’utente di inserire prima il suo nome e

poi la sua età e stampare a video la frase nome è maggiorenne, o

nome è minorenne in base all’età inserita.

Esercizio 5: chiedere all’utente di digitare 2 numeri e poi il segno

di un’operazione (+,-,*, / o %) che dovrà essere un char e

stampare a video il risultato dell’operazione tra i due.

Esercizio 6: chiedere all’utentedi digitare un numero di 3 cifre e

stampare a video ogni singolacifra (dovrai usare l’operatore di

divisione nel modoopportuno).

Page 93: Corso Di Programmazione Per Android Live

Nel prossimo volume, oltre a nuovi esercizi mirati, troverai anche

lo svolgimento di questi esercizi.

Page 94: Corso Di Programmazione Per Android Live

Conclusioni

Questo primo volume era solo l’inizio diunlungopercorso.

Per il momento abbiamo solo scalfito la superficie di un linguaggio

di programmazione molto vasto e potente come Java. Abbiamo

parlatodi

tipie variabilie abbiamo analizzato i costrutti

condizionali più semplici.

Nella parte dedicata all’applicazione hai iniziatoa capirecomemuoverti inEclipse,creandoun primo progetto e analizzandone lastruttura.Hai anche visto come utilizzare ilparadigmadi

programmazione visuale ecome

usare alcuni degli oggetti di

interfaccia grafica.

Nei volumi successivi approfondiremo lasintassidiJava tramitelostudio dinuovi costruttiche sfrutteremo in modellidi applicazionepiù complessie articolati.

Page 95: Corso Di Programmazione Per Android Live

"Ai 9:14

I Applicazione Contatto

Mario

Rossi

3332244555

Page 96: Corso Di Programmazione Per Android Live

Note

1. Il middleware è un software che si interpone tra due o più

applicazioni permettendo una comunicazione più semplice tra le

stesse.

2. Il termine OpenSource indica iprogrammi il cui codicesorgente èpubblico e disponibileper l’uso e la modificadaparte dialtri sviluppatori.3. Il kernel,

o nucleo, costituisce la parte principale di un sistema

operativo. Si trattadi unsoftware con il compito di fornireaiprocessi in esecuzione sul terminaleun accesso sicuroecontrollato all’hardware.4. Nella produzionedi

software, il framework è una struttura di

supporto sucuiun softwarepuò essereorganizzato e progettato.Alla basediun framework c’è sempre una seriedi librerie di codiceutilizzabiliconuno o più linguaggi di programmazione.

Page 97: Corso Di Programmazione Per Android Live

M

C“, *

GHDQOID

"o. ..

""Î=î€iî"_ ,

.. Wv-Q -Q

ona=ao_ag

-_’_

‘ ‘0'ÌIIII

Maw

"'-'"

gfînàob"mm" In 30'.“ a .0 . 0.7.

’.o..’..

t’VQ’WWM.’

gnaaqa'

Page 98: Corso Di Programmazione Per Android Live

un": uwcu:u m4-!

CÉÎUP‘ QÈ_ìmP‘la k-fi_ Cita".

MWM‘U9W Mpvenonltuo“

G M-wi' “5F” M”W\LÀ(‘ÀKÙ (HM “I 3'.“ ..mMio.

0

man: ' ‘

. I".

I*

‘- _- ". M

°J«”ÙÙÌ‘M*

_- MWNIÙ'ÙÙW

Page 99: Corso Di Programmazione Per Android Live

M\I 'A“l (0\ [l‘UX

IÙ'MIIN

COM‘MflOÙ

I 00....“CM

I*.IÙ“’0

-0o.“

O."\ÙlG."

I”

o. m“!

o -m..“

I “Il-I.-“Ud

Ml-..“

U“

05m

IN“.

0 o“ulfinl

4”o.mn_m i

umana-DM

OÙ\ÙMMMI

IÙI'ODI (LKI

L

MMÙLÙÙKI

‘ ‘ MCD“:

LINUXus'.\-'H'l IV\Ì

th.LOIIOII

-

LI Mv,x A) ;:‘c III If.\l

[WAÙW

O ANÙÙÙÙÙAI

Ù.IIM

I À.'\“M."

0 nammulfll

/

o mv»- uuviìnM

HIV.

0ANNI

MM

MO“

INUX0|fil.<_fil’fl

Page 100: Corso Di Programmazione Per Android Live

‘é'L‘ENDER

DER...Lu D

‘é'L‘ENDER

Ladkunùudeócorphqld

(WC _

, BLNDÉB

ÉÎENDER

mm

PAESAGGIO

(#nó

LENBÎfiB .

Ma1mah avanzati con Cydos

ÉÎENÉR

ÉÈÙBEBma.8le;lam

Page 101: Corso Di Programmazione Per Android Live

_".

[SKIIYOIIWCUCI

? ì_ fl

. 4 I

MÙÌ(O BARAGIANI

ORONASDK51m uvw. Arr.iuuruu RIMI;QOO I UOS |

.- ‘ d_-.c

lanunsw

‘ -:È"'

4” 'ÀSS‘ (ON

" i

v PARERAI A;

OMQA“I

-._ H- _-m”

..

‘va-DO. . - _ u_

. sifiliW

'.._3=..21. ___ una-m

-._‘ «_.. \Mll_.at

39‘? H "'_“

I puma-l -..

n-0..

l9llî0 I.04(\Kl

ESKÌÌOHWCUCI ‘

.q

muco BARAGIANI m

ORONASDKSV\l UP“A Apî“ . H A]K)MlKit»! IO .

.!2345’6 0910

.__I Ù-c’. . '

MIONWGKX

MIRCO BARAGIANI ‘-»_.

ORONASDS‘flLWA AW\(AIÙNÌPÎQÀNO’ÙOEÙS

u_3456109w

J- .

111

nmI.“ (

IMPARERAI:

J enu_.um

l

I

. OMÙ.'IN M'h|”.*

ma.

0INl_ulc_m

Page 102: Corso Di Programmazione Per Android Live

ESPERTO IN UN CLICK

FRANCESCO DE NOBILI

APP MARKETINGGUIDA PER PROMUOVERE LA TUA APP

Page 103: Corso Di Programmazione Per Android Live

mm

"mm1'

kg,L_igîtv‘;“!'230

m

uni’r"""""'-.îfì"2212230

-am

"

,- lmpareraì:

Imparerai:

‘ o QÙOMÙÙM

.0*MOMD.Ù

Ù*M

oo*omm’