Sviluppare Applicazioni per Android

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sviluppare Applicazioni per Android"

Transcript

1 Sviluppare Applicazioni per Android

2 ArrayAdapter ndroid disegna i componenti di una schermata attraverso oggetti della classe View, raccolti all'interno di oggetti ViewGroup (che possono raccogliere, a loro volta, altri oggetti View e ViewGroup). Esistono diverse specializzazioni degli oggetti detti sopra. View è la classe base per i widgets, così vengono chiamati gli elementi dell'interfaccia grafica. Alcune specializzazioni della classe View sono: la classe Button (per i bottoni), la classe TextView (per il testo), la classe ImageView (per le immagini). ViewGroup, invece, è la classe base per i layout, gli schemi che descrivono la disposizione degli oggetti sullo schermo (le activity). Alcune specializzazioni della classe ViewGroup sono: la classe LinearLayout (per un layout lineare), la classe ListView (per un layout a elenco), la classe TableLayout (per un layout tabellare). Le specializzazioni dette sopra ereditano dalle rispettive classi padre numerosi metodi e costanti. Pertanto, durante la scrittura del codice, vi invito a consultare la documentazione in linea se siete alla ricerca di metodi che non trovate documentati all'interno della classe! La presentazione di informazioni all'interno di un'activity, per alcune applicazioni, è spesso legata a una sorgente di dati. In tal caso è particolarmente importante collegare quest'ultima ai meccanismi che hanno il compito di presentare le informazioni all'interno degli oggetti ViewGroup dell'activity.

3 ArrayAdapter Adapter è l'interfaccia pubblica usata da Android per accedere a una sorgente di dati e istanziare oggetti View per ogni record. In questa interfaccia, pertanto, sono raccolte le firme dei metodi che permettono di gestire le azioni dette sopra. Per l'accesso a un record, ad esempio, esistono i metodi: public abstrac Obejct getitem(int position): che ritorna i dati di un record nella posizione indicata da position; public abstract long getitemid(int position): che ritorna la chiave del record nella posizione indicata da position; Per il conteggio dei record, invece, l'interfaccia prevede i metodi: public abstract getcount(): che ritorna il numero di record contenuti nell'oggetto Adapter; public abstract boolean isempty(): che ritorna true se l'oggetto Adapter non ha record, altrimenti false;

4 ArrayAdapter l riferimento a un oggetto View, che rappresenta un record dell'oggetto istanziato da Adapter, viene ottenuto con il metodo: public abstract View getview(int position, View convertview, ViewGroup parent): dove position indica la posizione del record all'interno della lista, convertview è il riferimento a una precedente View non più visibile (a causa dello scrolling e quindi riutilizzabile) e parent, infine, è il riferimento all'oggetto ViewGroup che contiene le singole View dei record;

5 ArrayAdapter Spesso la sorgente di dati da visualizzare è soggetta a variazioni e l'oggetto ViewGroup che ne permette la visualizzazione sul display va dunque aggiornato. A tale proposito l'interfaccia Adapter prevede i seguenti metodi per la gestione del suddettoevento: public abstract void registeredatasetobserver(datasetobserver observer): che registra un oggetto DataSetOberver come ascoltatore che verrà chiamato non appena si verifica una modifica ai dati; public abstract void unregisterdatasetobserver(datasetobserver observer): che cancella l'oggetto DataSetOberver impostato dal metodo visto prima, rendendo l'oggetto ViewGroup insensibile alle modifiche applicate sui dati;

6 ArrayAdapter AdapterView è la classe astratta che, estendendendo ViewGroup, implementa i meccanismi per la comunicazione fra un oggetto ViewGroup e un Adapter. La disposizione delle singole View viene lasciata alle successive specializzazioni di AdapterView (come ad esempio ListView, Gallery e Spinner). Un AdapterView, riassumendo, si occupa di: riempire il layout principale (dell'oggetto ViewGroup) con i dati, usando una specializzazione di Adapter (per accedere alla sorgente di dati); gestire le interazioni dell'utente con i dati presentati;

7 ArrayAdapter Pertanto, a seconda dello schema da adottare per le View è prevedibile aspettarsi, all'interno del package di Android, più specializzazioni e implementazioni dell'interfaccia Adapter. L'obiettivo di ognuna di queste specializzazioni è l'aggiunta di nuove firme di metodi orientati alla gestione del particolare layout. Ad esempio, per organizzare i record di una sorgente di dati secondo una lista di record, nel package di Android troviamo: la classe ListView, che estende ViewGroup (per il layout); l'interfaccia ListAdapter che estende l'interfaccia Adapter aggiungendo le firme dei metodi utili alla gestione dei dati organizzati secondo una lista scorrevole (i metodi aggiunti sono: isenabled(int row), che ritorna true se l'elemento della lista è abilitato, altrimenti torna false e areallitemsenabled(), che ritorna true se tutti gli elementi della lista sono abilitati, altrimenti torna false); la classe ArrayAdapter implementa l'interfaccia ListAdapter (potete infatti verificare la presenza dei metodi isenabled() e areallitemsenabled() all'intero della classe che effettivamente li implementa);

8 ArrayAdapter La classe ArrayAdapter, del package android.widget, si interfaccia con un array di oggetti (la sorgente di dati) e istanzia per ogni record una View. Esistono diversi costruttori di ArrayAdapter, come ad esempio public ArrayAdapter (Context context, int resource, int textviewresourceid, T[] object), dove: context è il riferimento a una risorsa o classe dell'applicazione; resource è il riferimento al layout dell'oggetto ViewGroup; textviewresourceid è il riferimento al layout che conterrà le View da istanziare per ogni occorrenza dell'array di oggetti; T[] è l'array di oggetti, quindi la sorgente di dati;

9 ArrayAdapter L'assegnazione dell'oggetto ArrayAdapter all'oggetto ListView (il contenitore per le View) avviene con il metodo setadapter(listadapter adapter). Vediamo con un esempio come applicare le cose fin qui dette. Supponiamo di voler realizzare un'applicazione in grado di gestire una lista di valori, le operazioni utili (per il momento) saranno svolte attraverso la pressione di due bottoni: uno per l'aggiunta di un nuovo elemento alla lista e uno per la cancellazione di tutti gli elementi della lista. Per l'aggiunta di un nuovo elemento, inoltre, sarà presente un'area di testo per l'input.

10 ArrayAdapter Realizziamo con il seguente codice xml (file main.xml) il layout principale dell'applicazione: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:text="new item:" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> <EditText android:layout_height="wrap_content"> </EditText> </LinearLayout>

11 ArrayAdapter android:layout_height="wrap_content" android:text="add item" android:onclick="additem"> </Button> android:layout_height="wrap_content" android:text="clear all items" android:onclick="clearall"> </Button> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent"> </ListView> </LinearLayout>

12 ArrayAdapter Dovendo in seguito specificare nel codice le azioni per gli eventi legati alla pressione di uno dei due bottoni ho deciso di utilizzare, per gli elementi Button, l'attributo android:onclick. La stringa riferita da questo attributo all'oggetto istanziato in fase di inflating ha l'importante compito di indicare allo stesso il metodo da invocare alla pressione della view (in questo caso il bottone). Tali metodi, dunque, vanno implementati all'interno della classe che descrive l'activity. Il layout principale mostrato sopra prevede infine un oggetto ViewGroup, in questo caso un oggetto ListView. Sarà questo componente ad occuparsi delle View relative agli elementi aggiunti.

13 ArrayAdapter Ogni singola View verrà presentata secondo uno schema descritto in un file xml a parte che per il nostro esempio è il file row.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" > <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content"> </ImageView> <TextView android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:paddingleft="10px" android:text="information here..."> </TextView> </LinearLayout>

14 ArrayAdapter Ogni nuovo elemento aggiunto sarà quindi descritto da un'immagine e da un testo a lato. Non ci resta che collegare tutto all'interno del codice. In questo esempio la sorgente di dati viene descritta con un oggetto della classe ArrayList (del package java.util), i cui metodi add() e clear() permettono la gestione della lista costruita così come descritto già sopra. Tali metodi saranno allora invocati all'interno dei metodi additem() e clearall() dell'activity.

15 ArrayAdapter Ogni nuovo elemento aggiunto sarà quindi descritto da un'immagine e da un testo a lato. Non ci resta che collegare tutto all'interno del codice. In questo esempio la sorgente di dati viene descritta con un oggetto della classe ArrayList (del package java.util), i cui metodi add() e clear() permettono la gestione della lista costruita così come descritto già sopra. Tali metodi saranno allora invocati all'interno dei metodi additem() e clearall() dell'activity. public class ListViewActivity extends Activity { private ArrayList<String> arrayofitems; private ArrayAdapter<String> public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); arrayofitems=new ArrayList<String>(); ListView listview=(listview)findviewbyid(r.id.viewofitems); arrayofitemsadapter=new ArrayAdapter<String>(this,R.layout.record,R.id.itemLabel,arrayOfItems); listview.setadapter(arrayofitemsadapter); }

16 ArrayAdapter public void additem(view v) { EditText input=(edittext)findviewbyid(r.id.newitem); String newitem=input.gettext().tostring(); if(newitem.trim().equals((string)"")) Toast.makeText(this,"Hey... i've a null item!",toast.length_long).show(); else { arrayofitems.add(newitem); arrayofitemsadapter.notifydatasetchanged(); Toast.makeText(this,"New item in the list!",toast.length_long).show(); input.settext(""); } } public void clearall(view v) { if(!arrayofitems.isempty()) { arrayofitems.clear(); arrayofitemsadapter.notifydatasetchanged(); Toast.makeText(this,"Bye bye old items!",toast.length_long).show(); } } }

17 ArrayAdapter Tralasciando le fasi dedicate al setup del layout principale, all'interno del metodo oncreate() viene: creata la sorgente di dati per la lista di elementi; ottenuto un riferimento all'oggetto ListView; istanziato l'oggetto ArrayAdapter, fornendo i riferimenti ai layout (quello principale e quello di riga) e alla sorgente di dati; collegato l'oggetto ArrayAdapter all'oggetto ListView. E' particolarmente importante, nei metodi add() e clearall(), invocare sull'oggetto ArrayAdapter il metodo notifydatasetchanged() per notificare un cambiamento nella sorgente di dati (l'aggiunta di un nuovo elemento oppure la cancellazzione dell'intera lista) e provocare l'aggionamento dell'oggetto ViewGroup (ListViewArrayAdapter nell'associazione fra elementi della sorgente di dati e il layout per la View. La stringa aggiunta viene legata di default a un elemento TextView. Nessun problema, quindi, per l'esempio appena visto. Gli item aggiunti sono stringhe e una TextView è sufficiente a raccoglierli. Se l'informazione da aggiungere è strutturata diversamente occorre necessariamente sovrascrivere il metodo getview() implementato nella classe ArrayAdapter e personalizzare allora la View da restituire.

18 ArrayAdapter

19 ArrayAdapter Tralasciando le fasi dedicate al setup del layout principale, all'interno del metodo oncreate() viene: creata la sorgente di dati per la lista di elementi; ottenuto un riferimento all'oggetto ListView; istanziato l'oggetto ArrayAdapter, fornendo i riferimenti ai layout (quello principale e quello di riga) e alla sorgente di dati; collegato l'oggetto ArrayAdapter all'oggetto ListView. E' particolarmente importante, nei metodi add() e clearall(), invocare sull'oggetto ArrayAdapter il metodo notifydatasetchanged() per notificare un cambiamento nella sorgente di dati (l'aggiunta di un nuovo elemento oppure la cancellazzione dell'intera lista) e provocare l'aggionamento dell'oggetto ViewGroup (ListViewArrayAdapter nell'associazione fra elementi della sorgente di dati e il layout per la View. La stringa aggiunta viene legata di default a un elemento TextView. Nessun problema, quindi, per l'esempio appena visto. Gli item aggiunti sono stringhe e una TextView è sufficiente a raccoglierli. Se l'informazione da aggiungere è strutturata diversamente occorre necessariamente sovrascrivere il metodo getview() implementato nella classe ArrayAdapter e personalizzare allora la View da restituire.

20 View e Layout L'interfaccia grafica di un'applicazione Android è descritta attraverso oggetti della classe View e ViewGroup (chiamati anche widget). La descrizione può avvenire sia attraverso file xml che attraverso codice java, in quest'ultimo caso l'interfaccia grafica può essere creata o manipolata a run-time (approccio che va sotto il nome di programmazione imperativa). Il primo modo di procedere è anche detto programmazione dichiarativa, l'interfaccia grafica viene infatti dichiarata in un file xml il cui nome è l'id che ne permette il riferimento. Il metodo findviewbyid(int ResourceId) della classe Activity ritorna un riferimento a un oggetto View rintracciato, all'interno delle risorse di progetto, attraverso il suo id. In questo articolo mi occuperò per buona parte della programmazione dichiarativa delle interfacce grafiche per applicazioni Android. Prima di procedere è opportuno sottolineare un importante questione fra i due modi di programmazione offerti da Android. La programmazione dichiarativa offre notevoli vantaggi per la descrizione di interfacce grafiche e la definizione di risorse poiché usa file esterni (xml, nel caso di Android) al codice java. Ogni modifica, infatti, non richiederà la compilazione dell'intero progetto. Cosa che invece accade necessariamente nella programmazione imperativa a fronte di una modifica nel codice. L'uso di una delle due metodologie va comunque valutato in fase di progettazione dell'applicazione.

21 View e Layout Android raccoglie gli elementi di una interfaccia grafica attraverso oggetti della classe ViewGroup, una specializzazione della classe View. Un oggetto ViewGroup può contenere a sua volta altri oggetti View e/o ViewGroup. Un modo particolarmente utile di sintetizzare l'interfaccia grafica, indipendentemente dall'approccio usato, consiste nella sua rappresentazione gerarchica ad albero. Android disegna l'interfaccia grafica a partire dall'elemento radice di tale albero, analizzando prima il sottoalbero sinistro, quindi il nodo centrale ed infine il sottoalbero destro. La visita del suddetto albero, così come l'ho appena descritta, è detta in-order. Questo modo di procedere, disegna gli oggetti dell'albero a partire dal basso verso l'alto. In caso di sovrapposizione fra oggetti può accadare che l'ultimo oggetto disegnato copra il precedente! Il processo compiuto da Android che a partire dalla visita dell'albero genera gli oggetti dell'interfaccia, istanziandoli man mano, è detto inflating e segue un preciso algoritmo che può essere anche personalizzato.

22 View e Layout Anche se una view descrive l'oggetto dotandolo di dimensioni e misure per lo scostamento, l'oggetto ViewGroup che fa da contenitore ne fissa per diritto le proprietà (occupando nell'albero una posizione a un livello superiore). Ne consegue che non sempre le proprietà volute da una view vengano poi garantite dall'oggetto ViewGroup contenitore se quest'ultimo impone le proprie caratteristiche. Alla luce di quanto appena detto, allora, è preferibile assegnare le proprietà generali, quelle in comune a tutti gli elementi View e/o ViewGroup, ai nodi ViewGroup di livello superiore. Un oggetto della classe View ritorna con i metodi getleft() e gettop() le coordinate del vertice in alto a sinistra del componente da disegnare. I metodi getmeasuredheight() e getmeasuredwidth() della classe View ritornano, invece, le dimensioni desiderate dal componente, mentre i metodi getwidth() e getheight() quelle effettive. Più avanati vedremo come impostare queste proprietà all'interno di una view assegnata come layout per l'applicazione. Vi ricordo che tale assegnazione avviene grazie al metodo setcontentview() (della classe Activity), a cui va passato l'elemento radice di un oggetto ViewGroup. Il layout dell'applicazione viene disegnato, durante la visita all'albero delle View, in due passi: measure pass e layout pass. Vengono cioè invocati i metodi per l'accesso alle coordinate e alle dimensioni visti sopra. Per layout si intende, quindi, il modo di organizzare e raccogliere gli oggetti View e ViewGroup, Android ne mette a disposizioni alcuni di default: LinearLayout, RelativeLayout, TableLayout e FrameLayout.

23 View e Layout Ognuno di questi, come già accennato sopra, può impostare delle proprietà generali valide, poi, per tutte le view contenute. Alcune di queste sono passate agli oggetti attraverso gli attributi android:layout_height e android:layout_width per fissare, rispettivamente, l'altezza e la larghezza del layout. Possiamo caratterizzare queste proprietà con le costanti fill_parent e wrap_parent, oppure con misure fisse. La costante fill_parent indica la volontà del componente di impegnare tutto lo spazio disponibile mentre con wrap_parent il componente occuperà lo spazio minimo. Altre proprietà, infine, sono tipiche del layout e saranno prese in considerazione solo se l'oggetto creato in fase di inflating le prevede. Di seguito vi parlo dei principali layout di Android.

24 View e Layout LinearLayout Si tratta di un layout che dispone le view lungo la direzione stabilita dalla proprietà android:layout_orientation, che può assumere i valori horizontal (le view sono disposte su colonne) e vertical (le view sono disposte su righe). Qualora il numero di view sia tale da andare oltre le dimensioni dello schermo vi suggerisco di ricorrere all'elemento ScrollView (un oggetto ViewGroup), che aggiunge una barra laterale per lo scorrimento. Il tag da usare all'interno del file xml è LinearLayout. Ecco un esempio di LinearLayout il cui flusso è orientato orizzontalmente: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_height="fill_parent"> android:text="invia" android:layout_width="wrap_content" android:layout_height="wrap_content"/> android:text="cancella" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>

25 View e Layout

26 View e Layout Qui, invece, lo stesso layout con orientazione verticale: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="fill_parent"> android:text="invia" android:layout_width="wrap_content" android:layout_height="wrap_content"/> android:text="cancella" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>

27 View e Layout

28 View e Layout In questi due esempi possiamo subito apprezzare la validità della costante wrap_content. Il componente, in questi esempi un bottone, occupa lo spazio minimo che coincide con quello necessario a contenere la label del bottone. Particolarmente utile è il seguente esempio: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_height="fill_parent"> android:text="invia" android:layout_height="wrap_content"/> android:text="cancella" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>

29 View e Layout

30 View e Layout Che fine ha fatto il secondo bottone? Tutto deriva dall'algoritmo usato da Android per disegnare il layout. Infatti, visitando l'albero delle view con la modalità in-order il sistema operativo in fase di inflating istanzia l'oggetto per disegnare il primo bottone assegnando per quest'ultimo tutta la larghezza messa a disposizione dal contenitore (attributo android:layout_width=fill_parent del primo bottone). Pertanto, quando si troverà a visitare l'altra view per istanziare il secondo bottone, lo spazio a disposizione è già stato consumato interamente dal componente che lo ha preceduto. Il risultato è quello in figura, il secondo bottone non è visibile nel layout! Un LinearLayou rispetta i margini delle view contenute, questi possono essere assegnati alle rispettive view attraverso gli attributi android:layout_marginbottom, android:layout_margintop, androi:layout_marginleft e android:layout_marginright per i rispettivi bordi. Mentre con l'attributo android:layout_margin possiamo assegnare un unico valore valido per tutti i bordi del componente.

31 View e Layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_height="fill_parent"> android:text="invia" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="25px" android:layout_marginright="25px"/> android:text="cancella" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>

32 View e Layout

33 View e Layout Un LinearLayout permette l'assegnazione di un opportuno peso da assegnare a una view attraverso l'attributo android:layout_weight. L'intero, oppure il decimale, dato al componente come peso lo autorizza a espandersi fino a impegnare lo spazio offerto dal contenitore, in relazione agli altri pesi dati agli altri componenti. In altre parole, a seconda dell'orientazione del layout, lo spazio lungo le righe o le colonne viene ripartito fra le view del layout. La view con il peso più grande occuperà meno spazio (oppure, quella con il decimale più grande occuperà più spazio, usate decimali compresi fra 0 ed 1). <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_height="fill_parent"> android:text="invia" android:layout_height="wrap_content" android:layout_weight="1"/> android:text="cancella" android:layout_height="wrap_content" android:layout_weight="2"/> </LinearLayout>

34 View e Layout

35 View e Layout Un LinearLayout, infine, permette di stabilire attraverso l'attributo android:layout_gravity dove e come inserire una view nel layout. I possibili valori sono: top, bottom, left, right, center_vertical, fill_vertical, center_horizontal, fill_horizontal, center, fill, clip_vertical e clip_horizontal. In altre parole, lo spazio che il contenitore mette a disposizione della view verrà impegnato seguendo il significato di uno degli attributi detti sopra. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_height="fill_parent" android:layout_weight="1"> android:text="invia" android:layout_height="wrap_content" android:layout_weight="1"/>

36 View e Layout android:text="cancella" android:layout_height="wrap_content" android:layout_weight="2"/> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_height="fill_parent" android:layout_weight="1"> <EditText android:text="messaggio..." android:layout_height="wrap_content" android:layout_gravity="center_vertical"/> </LinearLayout> </LinearLayout>

37 View e Layout

38 View e Layout TableLayout Con TableLayout le view figlie vengono posizionate all'interno di righe e colonne di una tabella. Ogni riga può avere un certo numero di colonne, anche nullo se necessario. Una cella può inoltre descrivere altri oggetti ViewGroup. Il tag da usare all'interno del file xml è TableLayout. Per l'aggiunta di una riga, invece, va usato TableRow. Gli attributi android:layout_column e android:layout_span permettono, rispettivamente, di assegnare una view ad una precisa colonna della tabella oppure di estendere una view anche ad altre celle successive.

39 View e Layout <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:stretchcolumns="0,1,2,3"> <TableRow android:layout_height="fill_parent" <TextView android:text="risultato..." android:layout_gravity="center_horizontal" android:layout_column="0" android:layout_span="4" android:textstyle="bold"/> </TableRow> <TableRow android:layout_height="fill_parent" android:text="9" android:layout_weight="0.25"/>

40 android:text="8" android:layout_weight="0.25"/> android:text="7" android:layout_weight="0.25"/> android:text="+" android:layout_weight="0.25"/> </TableRow> <TableRow android:layout_height="fill_parent" android:text="6" android:layout_weight="0.25"/> android:text="5" android:layout_weight="0.25"/> View e Layout

41 android:text="4" android:layout_weight="0.25"/> android:text="-" android:layout_weight="0.25"/> </TableRow> <TableRow android:layout_height="fill_parent" android:text="3" android:layout_weight="0.25"/> android:text="2" android:layout_weight="0.25"/> android:text="1" android:layout_weight="0.25"/> View e Layout

42 android:text="*" android:layout_weight="0.25"/> </TableRow> <TableRow android:layout_height="fill_parent" android:text="(" android:layout_weight="0.25"/> android:text="0" android:layout_weight="0.25"/> android:text=")" android:layout_weight="0.25"/> android:text=":" android:layout_weight="0.25"/> </TableRow> View e Layout

43 <TableRow android:layout_height="fill_parent" android:text="." android:text="c" android:text="=" android:layout_column="2" android:layout_span="2"/> </TableRow> </TableLayout> View e Layout

44 View e Layout RelativeLayout Con l'oggetto RelativeLayout (usate l'omonimo tag nel file xml) possiamo descrivere un layout le cui view vengono disposte sullo schermo in relazione ad altre view appartenenti allo stesso layout. I possibili valori sono molti e tutti indicano l'id della view di riferimento, oppure abilitano un particolare allineamento. Una view può essere allineata rispetto al contenitore attraverso gli attributi android:layout_alignparentright, android:layout_alignparentleft, android:layout_alignparenttop e android:layout_alignparentbottom, a cui va passato il valore booleano true. Altre possibili soluzioni sono: android:layout_aligntop, android:layout_alignbotton, android:layout_alignleft e android:layout_alignright a cui va passato l'id della view di riferimento. Per una lista completa dei possibili attributi vi invito a consultare la guida in linea.

45 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="select a value:" android:layout_alignparentleft="true" /> android:layout_width="wrap_content" android:text="next" android:layout_height="wrap_content" <SeekBar android:layout_height="wrap_content" </RelativeLayout>

46 View e Layout FrameLayout E' l'oggetto (classe FrameLayout, usate l'omonimo tag per segnalarlo nel file xml) per layout più semplice, raccoglie le view disegnandole a partire dal vertice in alto a sinistra dello schermo. Non esistono metodi e attributi capaci di intervenire sulla collocazione delle view che verranno inevitabilmente sovrapposte fra loro. L'attributo android:visibility permette di nascondere una view, attivabile in un secondo momento attraverso il metodo setvisibility() a cui va passata la costante FrameLayout.VISIBLE. Con la costante FrameLayout.GONE, invece, disabilitiamo la visione di una view.

47 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="fill_parent"> <TextView android:text="android" android:layout_height="wrap_content"/> <TextView android:text=" Android" android:layout_gravity="center_horizontal" android:layout_height="wrap_content"/> <TextView android:text=" Android" android:layout_height="wrap_content" android:visibility="gone"/> </FrameLayout>

Lezione 9 Liste, tabelle, caselle di scelta e gallerie di immagini

Lezione 9 Liste, tabelle, caselle di scelta e gallerie di immagini A cura di Carlo Pelliccia Tutti i layout dimostrati negli esempi delle lezioni precedenti sono dei layout fissi. I widget di un layout fisso sono sempre gli stessi e non cambiano ruolo o quantità nel corso

Dettagli

Android. Implementare una interfaccia utente

Android. Implementare una interfaccia utente Android Implementare una interfaccia utente Introduzione In questa lezione vedremo come implementare una interfaccia utente sullo schermo di Android. Vedremo gli elementi di base visualizzabili sullo schermo

Dettagli

Android. Adapter e ListView. diegozabot@yahoo.it

Android. Adapter e ListView. diegozabot@yahoo.it Android Adapter e ListView diegozabot@yahoo.it Funzionamento di un Adapter Quando il contenuto del layout non è predeterminato o è dinamico possono essere utilizzati gli Adapter. Un Adapter recupera i

Dettagli

Programmazione Android. Luca Morettoni http://www.morettoni.net

Programmazione Android. Luca Morettoni <luca@morettoni.net> http://www.morettoni.net Programmazione Android Luca Morettoni http://www.morettoni.net Android Programming Cos'è Android; Concetti di base sulla programmazione: Q&A AndroidManifest; Activities; Services;

Dettagli

Lezione 5 Widget e Layout (XML)

Lezione 5 Widget e Layout (XML) A cura di Carlo Pelliccia Con la precedente lezione abbiamo imparato a disporre sullo schermo i principali widget messi a disposizione da Android: bottoni, caselle di testo, check box e via discorrendo.

Dettagli

ANDROID Introduzione alla programmazione per applicativi Android Dott. Ing. Ivan Ferrazzi V1.1 del 05/08/2013

ANDROID Introduzione alla programmazione per applicativi Android Dott. Ing. Ivan Ferrazzi V1.1 del 05/08/2013 ANDROID Introduzione alla programmazione per applicativi Android Dott. Ing. Ivan Ferrazzi V1.1 del 05/08/2013 1/78 Copyright 2013 Dott.Ing. Ivan Ferrazzi Permission is granted to copy, distribute and/or

Dettagli

Lezione 11 Accesso al file system

Lezione 11 Accesso al file system A cura di Carlo Pelliccia Qualunque applicazione Android può leggere e scrivere file dalla memoria interna del telefono o da una scheda esterna inserita nel dispositivo. I principi da osservare per compiere

Dettagli

Lezione 6 Gestione degli eventi dei widget

Lezione 6 Gestione degli eventi dei widget A cura di Carlo Pelliccia Nelle due precedenti lezioni abbiamo conosciuto i principali widget di Android e le tecniche utili per richiamarli e disporli nel display dello smartphone. In questa lezione impareremo

Dettagli

Programmare per Android: User Interface v0.1beta

Programmare per Android: User Interface v0.1beta v0.1beta Rossi Pietro Alberto Pagina 1 Indice Introduzione alla programmazione ad oggetti... 5 Introduzione alla programmazione visuale... 6 Introduzione alla programmazione ad eventi... 7 UserControls...

Dettagli

Mobile Programming. Prova scritta del 28/01/2015. Prof. De Prisco. Corso di laurea in Informatica

Mobile Programming. Prova scritta del 28/01/2015. Prof. De Prisco. Corso di laurea in Informatica Corso di laurea in Informatica Mobile Prof. De Prisco Prova scritta del 28/01/2015 NOME: COGNOME: MATRICOLA: Domande Punti 1 /100 2 /100 3 /100 4 /100 5 /100 6 /100 7 /100 8 /100 9 /100 10 /100 TOTALE

Dettagli

Lezione 13 Content Provider

Lezione 13 Content Provider A cura di Carlo Pelliccia Come si è visto nelle due lezioni precedenti, secondi i meccanismi di gestione della sicurezza di Android, sia i file che i database sono solitamente di esclusiva proprietà dell

Dettagli

Android by Example v4.2 JellyBean

Android by Example v4.2 JellyBean Android by Example v4.2 JellyBean Rossi Pietro Alberto Sorgenti scaricabili dal sito www.sprik.it Premessa Tanto tempo è passato dalla prima guida, troppo. L'intento era quello di costruire una guida solida

Dettagli

Programmazione Android A cura di Carlo Pelliccia. Lezione 7 Menù

Programmazione Android A cura di Carlo Pelliccia. Lezione 7 Menù A cura di Carlo Pelliccia I menù sono una parte importante di qualsiasi applicazione moderna. Da anni gli utenti sono abituati ad avere a che fare con questi strumenti, ai quali si rivolgono ogni volta

Dettagli

La geolocalizzazione

La geolocalizzazione La geolocalizzazione La maggior parte dei dispositivi mobili di ultima generazione è dotata di un antenna GPS che permette di conoscere, in breve tempo e con la precisione di qualche metro, la propria

Dettagli

CREARE APP PER ANDROID

CREARE APP PER ANDROID CREARE APP PER ANDROID L'ambiente di lavoro per progettare applicazioni per Android TUTORIAL 1 - In questo capitolo vedremo tutti i passaggi per scaricare il software Android Developer Tools, necessario

Dettagli

Lezione 8 Notifiche e finestre di dialogo

Lezione 8 Notifiche e finestre di dialogo A cura di Carlo Pelliccia Andiamo ad aggiungere un ulteriore tassello nel quadro dell interazione fra un attività Android e l utente che ne fa uso. Nelle lezioni precedenti abbiamo già appreso numerose

Dettagli

Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pratici.

Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pratici. Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pratici. Riccardo Solimena (Java Italian Portal) Stefano Sanna (JUG Sardegna Onlus) Outline Who we are Android: brevissima introduzione

Dettagli

Sviluppo di App per sistema operativo Android

Sviluppo di App per sistema operativo Android Università degli Studi di Padova Dipartimento di Ingegneria dell Informazione Corso di Laurea Triennale in Ingegneria dell Informazione Tesina di laurea triennale Sviluppo di App per sistema operativo

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Sviluppo Software Autore: Sergio Gandola Revisione: 2 Data: 07/06/13 Titolo: Documentazione Tecnica Diario File:Documentazione Tecnica.pdf Sito: http://inno-school.netsons.org/

Dettagli

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari Android Android A. Ferrari Android è un sistema opera8vo per disposi8vi mobili. Inizialmente sviluppato da Startup Android Inc. acquisita poi nel 2005 da Google Inc. Il cuore di Android è un kernel Linux.

Dettagli

SIMPLY JOB. Progetto per il corso di Programmazione III e Laboratorio A.A 2014-2015. Realizzato da: Massimo Buonocore 0124000226

SIMPLY JOB. Progetto per il corso di Programmazione III e Laboratorio A.A 2014-2015. Realizzato da: Massimo Buonocore 0124000226 Progetto per il corso di Programmazione III e Laboratorio A.A 2014-2015 SIMPLY JOB Realizzato da: Massimo Buonocore 0124000226 Dario Telese 0124000330 L IDEA L' idea di questa applicazione è nata come

Dettagli

Esercizi lezione 7. Esercizio A Progettate un'applicazione Android che consenta di fare una telefonata. Pag. 1/9

Esercizi lezione 7. Esercizio A Progettate un'applicazione Android che consenta di fare una telefonata. Pag. 1/9 Pag. 1/9 Esercizi lezione 7 Esercizio A Progettate un'applicazione Android che consenta di fare una telefonata. Suggerimenti: si può usare un intent e il metodo startactivity(), seguendo il frammento di

Dettagli

Applicazione con due attività

Applicazione con due attività T Applicazione con due attività Tutorial per Eclipse P. Gallo M.L. Pietramala Java Blocco tematico E Le apps e ANDROID Unità E2 Eventi Prerequisiti Obiettivi Unità E2 Eventi al termine dell esercitazione,

Dettagli

Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica. Anno accademico 2012/2013

Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica. Anno accademico 2012/2013 Università degli Studi di Bologna Scuola di Ingegneria e Architettura Java e la piattaforma Android Corso di Laurea in Ingegneria Informatica Anno accademico 2012/2013 Prof. ENRICO DENTI Dipartimento di

Dettagli

Indice generale. Capitolo 1 Introduzione ad Android... 1

Indice generale. Capitolo 1 Introduzione ad Android... 1 Prefazione Introduzione...xvii...xix Capitolo 1 Introduzione ad Android... 1 Che cos è Android... 2 Un po di storia... 3 Android e Java... 4 Confronto con J2ME... 6 La Dalvik Virtual Machine... 9 L architettura

Dettagli

Università degli Studi di Bologna Polo di Forlì. Fondamenti di Programmazione MINI CORSO SULLA COSTRUZIONE DI GUI CON TKINTER TK IN PYTHON

Università degli Studi di Bologna Polo di Forlì. Fondamenti di Programmazione MINI CORSO SULLA COSTRUZIONE DI GUI CON TKINTER TK IN PYTHON Università degli Studi di Bologna Polo di Forlì Fondamenti di Programmazione MINI CORSO SULLA COSTRUZIONE DI GUI CON TKINTER TK IN PYTHON Docente: Dott. Gianluigi Roveda Sommario 1. Anatomia di una interfaccia

Dettagli

Scaletta. Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android. Conclusioni. Activity e Intent. MoBe s.r.l.

Scaletta. Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android. Conclusioni. Activity e Intent. MoBe s.r.l. Scaletta Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android Activity e Intent Conclusioni Strumenti di sviluppo Disponibili per Windows, Mac OS X (Intel) e Linux Strumenti JDK (Java

Dettagli

Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica. Anno accademico 2014/2015

Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica. Anno accademico 2014/2015 Università degli Studi di Bologna Scuola di Ingegneria e Architettura Java e la piattaforma Android Corso di Laurea in Ingegneria Informatica Anno accademico 2014/2015 Prof. ENRICO DENTI Dipartimento di

Dettagli

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy.

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. 10 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com

Dettagli

Corso di Visual Basic (Parte I)

Corso di Visual Basic (Parte I) Corso di Visual Basic (Parte I) Come muovere i primi passi con Microsoft Visual Basic, lo strumento da molti considerato ideale per la realizzazione di applicazioni di piccola e media entità in ambiente

Dettagli

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,

Dettagli

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008 Se devo memorizzare più valori che sono in qualche modo parenti dal punto di vista logico, posso usare il concetto di vettore di variabili (array). Ad esempio, se devo memorizzare le temperature di tutti

Dettagli

Realizzazione di un servizio per la rilevazione di malfunzionamenti in ambiente Android

Realizzazione di un servizio per la rilevazione di malfunzionamenti in ambiente Android Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica tesi di laurea Realizzazione di un servizio per la rilevazione di malfunzionamenti in ambiente Android Anno Accademico 2011/12 relatore Ch.mo

Dettagli

ANDROID ANDROID & JAVA. DALVIK o ART? STRUMENTI SVILUPPARE CON ECLIPSE. Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica

ANDROID ANDROID & JAVA. DALVIK o ART? STRUMENTI SVILUPPARE CON ECLIPSE. Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica Università degli Studi di Bologna Scuola di Ingegneria e Architettura Java e la piattaforma Android Corso di Laurea in Ingegneria Informatica Anno accademico 2014/2015 Prof. ENRICO DENTI Dipartimento di

Dettagli

[AD.AGIO] ANDROID SDK

[AD.AGIO] ANDROID SDK [AD.AGIO] ANDROID SDK 2013.06 Pag. 1 1. PREMESSA Il presente documento riporta informazioni riservate il cui utilizzo è confidenziale e permesso esclusivamente nell'ambito del rapporto di fornitura in

Dettagli

Programmazione Android. Giovanni Perbellini Università di Verona EDALab S.r.l.

Programmazione Android. Giovanni Perbellini Università di Verona EDALab S.r.l. Programmazione Android Giovanni Perbellini Università di Verona EDALab S.r.l. Agenda Introduzione Android Overview Ambiente di sviluppo Esempi Java Helloworld Weather (HTTP) Esercizio SOAP per Android

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

DESIGN PATTERNS Parte 5. Facade Strategy Composite Interpreter

DESIGN PATTERNS Parte 5. Facade Strategy Composite Interpreter DESIGN PATTERNS Parte 5 Facade Strategy Composite Interpreter FACADE Per proteggere la nostra applicazione sfruttando il Protect Variation possiamo usare il pattern Facade. Questo pattern è ottimo per

Dettagli

Carte Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale

Carte Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale Appelli di gennaio, febbraio e aprile 2005 Carte Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale 1 Descrizione Il progetto consiste nel realizzare un programma per gestire

Dettagli

2 Android Market e la commercializzazione delle applicazioni 35

2 Android Market e la commercializzazione delle applicazioni 35 Prefazione Prima di iniziare xiv xxii 1 Introduzione ad Android 31 1.1 Introduzione 32 1.2 Panoramica di Android 34 1.3 Android 2.2 (Froyo) 37 1.4 Android 2.3 (Gingerbread) 40 1.5 Android 3.0 (Honeycomb)

Dettagli

[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina

[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina [Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina Creare cartelle per salvare il lavoro] Per iniziare dobbiamo imparare a gestire quello spazio bianco che diverrà la

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Organizzazione dell'interfaccia utente su Android

Organizzazione dell'interfaccia utente su Android ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica Organizzazione dell'interfaccia utente su Android Relatore: Prof. Vittorio

Dettagli

Access - Lezione 02. Basi di dati. Parte seconda. (Per andare direttamente su un argomento, fare clic con il mouse sul titolo nell indice sottostante)

Access - Lezione 02. Basi di dati. Parte seconda. (Per andare direttamente su un argomento, fare clic con il mouse sul titolo nell indice sottostante) Access - Lezione 02 Basi di dati Parte seconda (Per andare direttamente su un argomento, fare clic con il mouse sul titolo nell indice sottostante) 1.0 Operazioni di base 1.1 Impostare e pianificare un

Dettagli

Lezione 3 Le attività

Lezione 3 Le attività A cura di Carlo Pelliccia Le applicazioni Android, come si è accennato durante la prima lezione, si compongono di quattro mattoni fondamentali: le attività (activity), i servizi (service), i broadcast

Dettagli

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari Algoritmi e Strutture Dati Tipo di dato astratto e Strutture dati elementari 1 Argomenti della lezione Tipi di dato astratto Strutture dati elementari Liste o Implementazione di liste in Java Stack Code

Dettagli

Tutorial di HTML basato su HTML 4.0 e CSS 2

Tutorial di HTML basato su HTML 4.0 e CSS 2 Claudia Picardi Tutorial di HTML basato su HTML 4.0 e CSS 2 Informatica II per Scienze e Turismo Alpino Docenti: Viviana Patti e Claudia Picardi 4 Tabelle 4.1 La struttura di una tabella Elementi principali

Dettagli

CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA

CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA In questo tutorial verrà illustrato come sfruttare la flessibilità del componente "Catalogo E-commerce" per realizzare un classico negozio a griglia, del tipo di

Dettagli

IL MIO PRIMO SITO CON XTOTEM FREESTYLE

IL MIO PRIMO SITO CON XTOTEM FREESTYLE Pagina 1 CON Sommario CON...1 Introduzione...2 Sulla carta...3 Preparo i contributi grafici...4 Inizio con XTOTEM...4 E' la prima volta che accedo a XTOTEM...5 Definisco l' AREA...6 Scelgo l'area su cui

Dettagli

Programma di Informatica 2ªB. Anno scolastico 2013/2014

Programma di Informatica 2ªB. Anno scolastico 2013/2014 Istituto d Istruzione Liceo Scientifico G.Bruno Muravera (CA) Programma di Informatica 2ªB Anno scolastico 2013/2014 Docente Prof. ssa Barbara Leo Libri di Testo e Materiali didattici Il testo di informatica

Dettagli

INTRODUZIONE AD HTML

INTRODUZIONE AD HTML INTRODUZIONE AD HTML I Frames ovvero Le cornici. Nelle lezioni precedenti abbiamo imparato a creare il nostro sito facendo uso di testo, immagini, links e meta comandi. Pochi e semplici ingredienti per

Dettagli

Lezione 3 Le attività

Lezione 3 Le attività A cura di Carlo Pelliccia Le applicazioni Android, come si è accennato durante la prima lezione, si compongono di quattro mattoni fondamentali: le attività (activity), i servizi (service), i broadcast

Dettagli

Programmazione in ambiente

Programmazione in ambiente Università Politecnica delle Marche Dipartimento di Ingegneria dell Informazione Programmazione in ambiente Android Laura Montanini - laura.montanini@univpm.it Corso di Tecnologie per le TLC 2013-2014

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Basi di dati Microsoft Access

Basi di dati Microsoft Access Basi di dati Microsoft Access Importare dati esterni Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto San Giovanni Breve Introduzione a Microsoft Access 2007 Microsoft Access 2007 è

Dettagli

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa. La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato

Dettagli

Programmazione Android A cura di Carlo Pelliccia. Lezione 12 Database

Programmazione Android A cura di Carlo Pelliccia. Lezione 12 Database A cura di Carlo Pelliccia DBMS, ossia Management System, è un termine caro agli sviluppatori di applicazioni server-side e di impresa. La maggior parte delle applicazioni Web, ad esempio, si appoggiano

Dettagli

PROGRAMMI LINGUAGGIO C

PROGRAMMI LINGUAGGIO C PROGRAMMI IN LINGUAGGIO C Corso di Programmazione Modulo B Prof. GIULIANO LACCETTI Studentessa Bellino Virginia Matr. 408466 Corso di Diploma in Informatica http://www.dicecca.net Indice 1. Package per

Dettagli

Programmazione Android. Lezione 10 Stili e temi

Programmazione Android. Lezione 10 Stili e temi A cura di Carlo Pelliccia Più volte, nel corso delle lezioni precedenti, si è rimarcato come Android spicchi tra gli altri sistemi mobili per la modernità dei suoi concetti e per la tipologia dei suoi

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 18 dicembre 2007 Esercizio 1: rappresentazione di una tabella di occorrenze L obiettivo è quello di rappresentare in modo efficiente

Dettagli

Mon Ami 3000 Touch Interfaccia di vendita semplificata per monitor touchscreen

Mon Ami 3000 Touch Interfaccia di vendita semplificata per monitor touchscreen Prerequisiti Mon Ami 3000 Touch Interfaccia di vendita semplificata per monitor touchscreen L opzione Touch è disponibile per le versioni Vendite, Azienda Light e Azienda Pro; per sfruttarne al meglio

Dettagli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Tipi Tipo Astratto di Permette di specicare dati in modo astratto Astratto Indipendentemente

Dettagli

Guida all uso del sistema

Guida all uso del sistema www.unicas.it Versione 3.0 del 9/12/2009 Pagina 1 Sommario Premessa... 3 Accesso in modalità di redattore... 4 CREAZIONE DI ELEMENTI... 5 MODIFICA DI ELEMENTI... 12 ELIMINAZIONE DI ELEMENTI... 12 ORDINAMENTO

Dettagli

L algoritmo di ricerca binaria. Daniele Varin LS Ing. Informatica Corso di Informatica teorica Docente: prof. Paolo Sipala

L algoritmo di ricerca binaria. Daniele Varin LS Ing. Informatica Corso di Informatica teorica Docente: prof. Paolo Sipala L algoritmo di ricerca binaria Daniele Varin LS Ing. Informatica Corso di Informatica teorica Docente: prof. Paolo Sipala L algoritmo di ricerca binaria (o dicotomica) In informatica,, la ricerca dicotomica

Dettagli

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

Dettagli

Manuale LIM Hitachi FX77- PARTE 1

Manuale LIM Hitachi FX77- PARTE 1 Manuale LIM Hitachi FX77- PARTE 1 Sommario Che cos'è StarBoard Software?... 2 Elementi dello schermo... 2 Guida rapida all'avvio... 3 Selezione di una modalità... 5 Disegno... 6 Disegno con gli strumenti

Dettagli

Il linguaggio HTML - Parte 2

Il linguaggio HTML - Parte 2 Corso IFTS Informatica, Modulo 3 Progettazione pagine web statiche (50 ore) Il linguaggio HTML - Parte 2 Dott. Chiara Braghin braghin@dti.unimi.it Elenchi all interno di Un elenco è una sequenza

Dettagli

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da:

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da: Un thread (o processo leggero) è una attività, descritta da una sequenza di istruzioni, che esegue all'interno del contesto di esecuzione di un programma. Un thread procede nella sua esecuzione per portare

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

bla bla Documenti Manuale utente

bla bla Documenti Manuale utente bla bla Documenti Manuale utente Documenti Documenti: Manuale utente Data di pubblicazione mercoledì, 25. febbraio 2015 Version 7.6.2 Diritto d'autore 2006-2013 OPEN-XCHANGE Inc., Questo documento è proprietà

Dettagli

21-01 Controlli al volo

21-01 Controlli al volo 01. Matrici di controlli Per iniziare, una matrice di pulsanti Dichiarare una matrice di Button come segue: Button [, ] matrix; matrix = new Button [8, 8]; 21-01 Controlli al volo 21-01 Controlli al volo

Dettagli

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005 Appunti sugli Elaboratori di Testo D. Gubiani Università degli Studi G.D Annunzio di Chieti-Pescara 19 Luglio 2005 1 Cos è un elaboratore di testo? 2 3 Cos è un elaboratore di testo? Cos è un elaboratore

Dettagli

Guida introduttiva al Document Object Model

Guida introduttiva al Document Object Model Guida introduttiva al Document Object Model ( I.D. Falconi ~ 27.02.13) Il DOM (Document Object Model) è un modello che descrive come i diversi oggetti di una pagina web sono collegati tra loro. Tecnicamente

Dettagli

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente INTRODUZIONE Per sviluppare applicazioni in grado di girare su sistemi Android servono tre cose: il Java JDK (Java Development Kit), che contiene tutti gli strumenti necessari a sviluppare nel linguaggio

Dettagli

bla bla Documenti Manuale utente

bla bla Documenti Manuale utente bla bla Documenti Manuale utente Documenti Documenti: Manuale utente Data di pubblicazione mercoledì, 05. novembre 2014 Version 7.6.1 Diritto d'autore 2006-2013 OPEN-XCHANGE Inc., Questo documento è proprietà

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Android. Anatomia di una applicazione

Android. Anatomia di una applicazione Android Anatomia di una applicazione Elementi di base Gli elementi di base per costruire una applicazione Android sono cinque: Activity Intent Broadcast Receiver Service Content Provider 2 Activity (1/3)

Dettagli

Guida introduttiva alle librerie grafiche GTK+

Guida introduttiva alle librerie grafiche GTK+ Guida introduttiva alle librerie grafiche GTK+ Breve introduzione Sara Casti - Gianmarco Cherchi - Davide Gessa GTK (GimpToolKit) è un insieme di strumenti per la creazione di interfacce grafiche inizialmente

Dettagli

Programmazione. Android

Programmazione. Android Lezione 3 Programmazione Android Struttura di un'applicazione Android In sviluppo In deployment In esecuzione Il sistema delle risorse Architettura generale Risorse alternative Qualche esempio AndroidManifest.xml

Dettagli

Corso Base. Lezione 6. Maurizio Cozzetto, Francesco Sarasini

Corso Base. Lezione 6. Maurizio Cozzetto, Francesco Sarasini Corso Base Lezione 6 Maurizio Cozzetto, Francesco Sarasini Database SQLite (1/2) Android provides full support for SQLite databases. Any databases you create will be accessible by name to any class in

Dettagli

Progetto Ingegneria del Software. Anno Accademico 2014-2015. Sessione invernale. SoSolitario. Una tipologia di solitario come tante

Progetto Ingegneria del Software. Anno Accademico 2014-2015. Sessione invernale. SoSolitario. Una tipologia di solitario come tante Progetto Ingegneria del Software Anno Accademico 2014-2015 Sessione invernale SoSolitario Una tipologia di solitario come tante Giulia Talamonti n 248899 Indice 2 1. Specifica del problema 4 2. Specifica

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

UNIVERSITÀ DEGLI STUDI DI PADOVA

UNIVERSITÀ DEGLI STUDI DI PADOVA UNIVERSITÀ DEGLI STUDI DI PADOVA Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria dell'informazione A.A. 2010-2011 Tesina Architettura della macchina virtuale Dalvik Relatore Prof. C. Fantozzi

Dettagli

WWW.ICTIME.ORG. NVU Manuale d uso. Cimini Simonelli Testa

WWW.ICTIME.ORG. NVU Manuale d uso. Cimini Simonelli Testa WWW.ICTIME.ORG NVU Manuale d uso Cimini Simonelli Testa Cecilia Cimini Angelo Simonelli Francesco Testa NVU Manuale d uso EDIZIONE Gennaio 2008 Questo manuale utilizza la Creative Commons License www.ictime.org

Dettagli

Cicli, Array e Programmazione su Sequenze

Cicli, Array e Programmazione su Sequenze Cicli, Array e Programmazione su Sequenze Luca Tesei Università di Camerino luca.tesei at unicam.it Università di Camerino - Corso di Laurea in Informatica - Programmazione + Laboratorio di Programmazione

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

CORSO PRATICO WinWord

CORSO PRATICO WinWord CORSO PRATICO WinWord AUTORE: Renato Avato 1. Strumenti Principali di Word Il piano di lavoro di Word comprende: La Barra del Titolo, dove sono posizionate le icone di ridimensionamento: riduci finestra

Dettagli

Videocitofonia Thinknx

Videocitofonia Thinknx Videocitofonia Thinknx 1 Indice Videocitofonia IP nei sistemi Thinknx...3 Configurazione senza centralino...4 Configurazione con centralino interno...6 Configurazione degli interni...8 Configurazione dei

Dettagli

USO DI EXCEL COME DATABASE

USO DI EXCEL COME DATABASE USO DI EXCEL COME DATABASE Le funzionalità di calcolo intrinseche di un foglio di lavoro ne fanno uno strumento eccellente per registrarvi pochi dati essenziali, elaborarli con formule di vario tipo e

Dettagli

IBM Software Demos WebSphere Portlet Factory Domino

IBM Software Demos WebSphere Portlet Factory Domino Dimostrazione di IBM WebSphere Portlet Factory Benvenuti in questa dimostrazione di IBM WebSphere Portlet Factory. La dimostrazione ci permetterà di osservare quanto sia facile creare, implementare, personalizzare

Dettagli

DESIGN PATTERNS Parte 4. Product Trader Service Manager Type Object Manager Adapter

DESIGN PATTERNS Parte 4. Product Trader Service Manager Type Object Manager Adapter DESIGN PATTERNS Parte 4 Product Trader Service Manager Type Object Manager Adapter PRODUCT TRADER Il Product Trader è un design pattern per la gestione delle estensioni in modo componibile, ovvero a plug-in.

Dettagli

Introduzione a Word. Prima di iniziare. Competenze che saranno acquisite. Requisiti. Tempo stimato per il completamento:

Introduzione a Word. Prima di iniziare. Competenze che saranno acquisite. Requisiti. Tempo stimato per il completamento: Introduzione a Word Word è una potente applicazione di elaborazione testi e layout, ma per utilizzarla nel modo più efficace è necessario comprenderne gli elementi di base. Questa esercitazione illustra

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

L interfaccia grafica con Java

L interfaccia grafica con Java L interfaccia grafica con Java 1/24 L interfaccia utente serve per la comunicazione tra utente e programma Distinguiamo le interfacce tra quelle a caratteri e quelle grafiche Le GUI (Graphical user interface)

Dettagli

UNITÀ DIDATTICA 1: il sistema computer

UNITÀ DIDATTICA 1: il sistema computer Istituto Tecnico Industriale Statale "Othoca" A.S. 2014/15 CLASSE:1F PROGRAMMA DI: Tecnologie Informatiche DOCENTE: Nicola Sanna UNITÀ DIDATTICA 1: il sistema computer Il corpo del computer: l'hardware

Dettagli

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

16.3.1 Alberi binari di ricerca

16.3.1 Alberi binari di ricerca 442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di

Dettagli

Prova d Esame 07.04.2006 Compito B

Prova d Esame 07.04.2006 Compito B DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public

Dettagli