Applicazione con due attività
|
|
- Brigida Giuliano
- 8 anni fa
- Visualizzazioni
Transcript
1 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, sarai in grado di creare applicazioni per Android con più di una attività e che usano intenti espliciti Per completare il tutorial, è necessario l ambiente di sviluppo Android come illustrato nell Unità E1: JDK (già installato per programmare in Java) versione 6 e successive Android SDK aggiornato Eclipse (versione 4.2 Juno e successive) configurato con il plugin ADT Questo tutorial ha l obiettivo di guidarti a costruire con Eclipse una semplice applicazione con più di una attività. L app dovrà leggere una stringa inserita dall utente, modificarla rendendo maiuscoli tutti i caratteri e visualizzarla in un altra attività. I passi da compiere sono: 1 creazione del progetto; 2 definizione dell attività principale (Main_activity); 3 creazione di un intento e trasferimento dati da una attività all altra, per far sì che la prima attività chiami la seconda; 4 creazione e definizione di una seconda attività (Risposta_Activity). 5.1 Creazione del progetto Dal menu File scegli la voce Close all per chiudere tutti gli eventuali file di precedenti applicazioni che fossero ancora aperti. Crea adesso il progetto della nuova app, che chiamerai Tutorial5, seguendo gli stessi passi dei tutorial precedenti: 1 dal menu File, scegli New e Project; T5 Applicazione con due attività 1
2 2 dalla finestra New Project seleziona la cartella Android e la voce Android Application Project; poi premi Next; 3 riempi i campi della finestra New Android Application scegliendo il nome Tutorial5 per l applicazione e premi Next; 2 E Le apps e ANDROID E2 Eventi
3 1 configura l icona di lancio dell applicazione: noi abbiamo lasciato l icona di default e modificato i colori di sfondo (background, qui giallo) e di fronte (foreground, qui rosa): penserai sicuramente a qualcosa di meglio quando svilupperai le tue apps! Quando hai terminato la configurazione, premi Next; 5 crea una BlankActivity nella finestra successiva e premi Next; T5 Applicazione con due attività 3
4 6 ora definisci le caratteristiche della activity appena creata: nome della activity, nome del suo layout, tipo di navigazione, titolo; poi premi Finish. Terminato il processo di creazione, la situazione nell IDE Eclipse sarà simile a questa: 4 E Le apps e ANDROID E2 Eventi
5 5.2 Definizione dell attività principale (Main_activity) Devi adesso creare l interfaccia grafica della attività principale, editando manualmente il file Activity_main.xml. Per prima cosa, si tratta di cancellare eventuali componenti che l IDE Eclipse abbia inserito in modo automatico nel file (nell esempio, l etichetta TextView, che contiene la scritta Hello World e un gestore di layout RelativeLayout). La UI (User Interface, Interfaccia Utente ) della tua attività deve contenere soltanto: il gestore di disposizione (ancora una volta, per semplicità, usiamo il LinearLayout): <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > </LinearLayout> un campo di testo (EditText), che chiamerai inputtesto e che mostrerà, appena visualizzato, un suggerimento (cui tra poco assegnerai il valore stringa scrivi qualcosa ): <EditText android:id="@+id/inputtesto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/suggerimento" /> un bottone (Button), che chiamerai bottone1 (in realtà, non sarà necessario usare questo nome in questa applicazione, quindi potresti evitare di definirlo) e che avrà una scritta (scrittasulbottone) cui darai tra poco il valore Trasforma! : <Button android:id="@+id/bottone1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/scrittasulbottone" /> Ecco il contenuto completo del file activity_main.xml dopo le modifiche: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <EditText android:id="@+id/inputtesto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/suggerimento" /> <Button android:id="@+id/bottone1" android:layout_width="wrap_content" android:layout_height="wrap_content" c T5 Applicazione con due attività 5
6 /> </LinearLayout> stop A questo punto, Eclipse ci segnala alcuni errori perché stiamo facendo riferimento a risorse (stringhe) ancora non definite. Prima di fare qualsiasi altra cosa, procediamo dunque a definire le risorse mancanti. Quando si usano stringhe nella UI è necessario dichiararle come risorse nel file res/values/ strings.xml. Devi quindi apportare alcune modifiche al file strings.xml; in particolare: aggiungere la stringa suggerimento e assegnarle il valore scrivi qualcosa ; aggiungere la stringa scrittasulbottone e assegnarle il valore Trasforma! ; cancellare la stringa hello_world che non ti serve. Per effettuare queste modifiche, cerca prima di tutto il file res/values/strings.xml aprendo il Package Explorer. Utilizza le icone posizionate nell angolo in basso a sinistra nella finestra della IDE (nell immagine sono cerchiate in rosso): La piccola icona rettangolare a sinistra serve per aprire un menu in cui è possibile scegliere la voce Package Explorer; l icona più a destra (che non sempre è presente di default) apre direttamente il Package Explorer. 6 E Le apps e ANDROID E2 Eventi
7 Dentro la scheda Package Explorer, apri la cartella res e poi la sottocartella values, poi clicca sul file strings.xml. Si apre l interfaccia grafica del file strings.xml. Per apportare le modifiche desiderate, puoi utilizzare questa comoda interfaccia grafica oppure editarle direttamente utilizzando l interfaccia testuale. Per passare dall interfaccia grafica a quella testuale, è sufficiente selezionare il tab strings.xml, in basso, nella scheda della interfaccia grafica del file. Il tab appare cerchiato in rosso nell immagine seguente. T5 Applicazione con due attività 7
8 Dopo le modifiche, il contenuto del file strings.xml dovrebbe essere il seguente: <resources> <string name="app_name">tutorial5</string> <string name="menu_settings">settings</string> <string name="title_activity_main">mainactivity</string> <string name="suggerimento">scrivi qualcosa</string> <string name="scrittasulbottone">trasforma!</string> </resources> A questo punto, dovrebbero essere sparite le segnalazioni di errore e l interfaccia grafica della attività avere all incirca questo aspetto: Il campo di testo non è molto grande, appena quanto basta per contenere le parole scrivi qualcosa. Se tu volessi dargli una dimensione più ampia, dovresti cambiare qualcosa nella definizione del campo di testo nel file activity_main.xml. Per far questo, non c è un unico modo, ma uno dei più immediati è definire l importanza, il peso di un elemento rispetto agli altri che si trovano sulla stessa riga. Per fare questo puoi usare l attributo android:layout_weight (weight è, appunto, il peso ). Questo attributo, di default, ha valore 0; se gli assegni un valore diverso (un valore positivo qualunque), una volta tolto lo spazio strettamente necessario alle altre componenti, tutto lo spazio rimanente verrà assegnato all elemento con peso diverso da 0. Modifichiamo quindi l interfaccia grafica della attività così: <EditText android:id="@+id/inputtesto" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" android:hint="@string/suggerimento" /> 8 E Le apps e ANDROID E2 Eventi
9 stop Nota che abbiamo anche eliminato il valore: android:layout_width="wrap_content" e lo abbiamo sostituito con: android:layout_width="0dp" perché, visto che la dimensione del campo di testo, grazie al valore 1 dell attributo weigh, è tutto lo spazio che rimane tolto lo spazio necessario al bottone, è inutile far calcolare lo spazio strettamente necessario per il campo di testo (valore: wrap_content): meglio assegnargli una dimensione costante (ricordiamo che è obbligatorio assegnare un valore all attributo android:layout_width). L interfaccia grafica adesso appare così: stop LINK E1.3, E1.5 Il campo di testo ha ora riempito tutto lo spazio rimanente una volta tolto quello necessario al bottone. Adesso devi compilare (menu Run/Run), in modo che gli elementi inseriti nei file XML vengano importati nel file R.java (generato dal sistema). Questa operazione porta al lancio dell emulatore (se hai configurato un AVD) e a caricare l applicazione sul tuo telefono (se hai collegato uno smartphone). La mancata compilazione e, quindi, il mancato aggiornamento del file R.java (che, ricordiamo, è un file generato e editato solo da Eclipse) porta a errori relativi al mancato riconoscimento degli elementi grafici inseriti nei file XML. Se ti dimentichi di compilare prima di mettere le mani sui file java e, come conseguenza, il tuo file java risulta pieno di segnalazioni di errori appena scrivi qualcosa (che non è, in realtà, un errore), a volte è possibile riemediare ripulendo tutto, cioè effettuando le tre operazioni seguenti: cancellare momentaneamente le aggiunte ai file java; selezionare Clean dal menu Project; selezionare Build project dal menu Project. Ricorda che il lancio dell emulatore è un operazione che può durare diversi minuti e che farà passare l AVD attraverso tutte le operazioni tipiche di un dispositivo Android: accensione, sblocco, visualizzazione delle applicazioni disponibili, scelta dell icona della tua app dal menu dell AVD e, finalmente, avvio della app. Nelle immagini seguenti, da sinistra verso destra e dal alto in basso, è riprodotta la sequenza delle fasi di avvio sullo AVD. T5 Applicazione con due attività 9
10 5.3 Gestione dell evento clic sul bottone Devi a questo punto creare un intento, trasferire dati da una attività all altra e far sì che la prima attività chiami la seconda. Per fare in modo che vengano eseguite le operazioni di lettura, trasformazione della stringa e visualizzazione hai bisogno di gestire l evento clic sul bottone Bottone1. Inserisci dunque, per prima cosa, un ulteriore riga nella parte Button del file Activity_main.xml che dichiari quale metodo deve essere chiamato nel caso di pressione del bottone (onclick). Nel tuo caso sarà il metodo trasformainmaiuscolo(). Il codice del bottone diventerà quindi: <Button android:id="@+id/bottone1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/scrittasulbottone" android:onclick="trasformainmaiuscolo" /> 10 E Le apps e ANDROID E2 Eventi
11 Apri adesso il file Main_activity.java (si trova nella directory src/ del progetto) e definisci il metodo trasformainmaiuscolo() che dovrà gestire l evento clic del bottone: ora va creata la stringa frasemaiuscola, per contenere il risultato della trasformazione della stringa letta tutta in caratteri maiuscoli public void trasformainmaiuscolo(view vista) { EditText campotesto = (EditText)findViewById(R.id.inputTesto); String frase = campotesto.gettext().tostring(); String frasemaiuscola= frase.touppercase(); Intent miointento = new Intent(this, RispostaMainActivity.class); devi per prima cosa individuare l oggetto Java corrispondente all elemento grafico di tipo EditText e di nome inputtesto che hai dichiarato nel file Activity_main.xml. Chiama questo oggetto campotesto. adesso bisogna leggere la stringa presente nel campo di testo. Ricorda che il risultato del metodo edittext.gettext() non è una stringa, ma una CharSequence: si deve quindi fare un casting a String con il metodo di conversione tostring() crea ora l intento che ti consentirà di chiamare la nuova attività, che ancora non hai scritto e che si chiamerà Risposta, in cui visualizzare la stringa frasemaiuscola miointento.putextra(extra_frasem,frasemaiuscola); inserisci la stringa da visualizzare fra i dati dell intento startactivity(miointento); fai partire l attività Risposta } stop Il codice appena scritto genera alcuni errori, perché: manca l importazione di alcune classi, come View, android.content.intent e android.widget. EditText, che dovrai subito importare; Ricorda che in Eclipse si possono importare le classi mancanti premendo Ctrl+Shift+O (su Windows o Linux) oppure Cmd+Shift+O (su Mac). si fa riferimento a una costante che appartiene all intento, EXTRA_FRASEM, che non hai dichiarato e che dichiarerai subito, proprio all inizio del file MainActivity.java, appena sotto l apertura della dichiarazione della classe MainActivity; dalle come valore il suo path completo (progetto di appartenenza, nome della applicazione, nome della variabile), secondo i consigli della documentazione SDK, in questo modo: public final static String EXTRA_FRASEM= "com.example.tutorial5.extra_frasem"; si fa riferimento a un attività (Risposta) che non esiste ancora, ma che scriverai fra poco. stop L intento che hai creato sopra è un intento esplicito, perché hai specificato qual è esattamente il componente dell applicazione al quale l intento è destinato (in questo caso, la classe RispostaActivity. class, cioè l attività che ancora devi scrivere). Gli intenti possono essere anche impliciti, nel qual caso l Intent non specifica il componente a cui l intento stesso è destinato, ma permette di destinarlo a qualsiasi applicazione installata sul dispositivo che soddisfi alcuni parametri. Gli intenti non solo servono a lanciare delle attività, ma possono anche trasportare dei dati di vario tipo individuati da coppie Nome-Valore e noti come extras. Per aggiungere extras all intento, usiamo il metodo putextra(), che accetta come primo parametro il nome della coppia (che occorre definire come costante public) e come secondo parametro il suo valore. Per questo hai dovuto definire la costante public EXTRA_FRASEM, nella classe MainActivity, e assegnarle contestualmente un valore univoco (importante soprattutto se si vuole che l intento possa essere utilizzato anche da altre app): in questo caso, seguendo una regola non scritta, ti abbiamo suggerito di assegnare il nome del progetto con gli elementi in ordine inverso: public final static String EXTRA_FRASEM= "com.example.tutorial5.extra_frasem"; T5 Applicazione con due attività 11
12 Il file MainActivity.java completo, in questo momento, appare così: package com.example.tutorial5; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.menu; import android.view.view; import android.widget.edittext; public class MainActivity extends Activity { public final static String EXTRA_FRASEM= public void oncreate(bundle savedinstancestate) { } super.oncreate(savedinstancestate); public boolean oncreateoptionsmenu(menu menu) { } getmenuinflater().inflate(r.menu.activity_main, menu); return true; public void trasformainmaiuscolo(view vista) { } } EditText campotesto = (EditText)findViewById(R.id.inputTesto); String frase = campotesto.gettext().tostring(); String frasemaiuscola= frase.touppercase(); Intent miointento = new Intent(this, RispostaMainActivity.class); miointento.putextra(extra_frasem,frasemaiuscola); startactivity(miointento); A questo punto Eclipse segnala ancora gli errori relativi alla mancanza della seconda attività, che devi creare. 5.4 Creazione e definizione di una seconda attività (Risposta_activity) Per creare una nuova attività in Eclipse: 1 seleziona New dalla barra dei menu e scegli Other. 12 E Le apps e ANDROID E2 Eventi
13 2 nella finestra che appare, seleziona la cartella Android e poi la voce Android Activity; quindi clicca su Next; T5 Applicazione con due attività 13
14 3 nella nuova finestra che si apre, seleziona BlankActivity e clicca su Next; 4 nella finestra dei dettagli dell attività, riempi così i vari campi: Project: Tutorial5; Activity Name: RispostaActivity; Layout Name: activity_risposta; Title: RispostaMainActivity; Hierarchial Parent: com.example.tutorial5.mainactivity; Navigation Type: None. Riempiti tutti i campi, clicca su Next; 5 appare ora una finestra che riassume tutti i cambiamenti da apportare per la creazione dell attività Risposta, cambiamenti che Eclipse porterà a termine automaticamente; se qualcosa non risulta come dovrebbe, puoi tornare indietro (Back) e modificare i dati immessi in precedenza. Se, invece, è tutto a posto, premi Finish. 14 E Le apps e ANDROID E2 Eventi
15 La nuova attività adesso è stata creata ed Eclipse visualizza la sua UI. Dovrebbe inoltre essere stato creato il file RispostaMainActivity.java (anch esso nella directory src/ del progetto). Al suo interno dovrebbero trovarsi: T5 Applicazione con due attività 15
16 stop Il metodo oncreate(); Il metodo oncreateoptionsmenu(), che in questa app non serve e può essere cancellato; Il metodo onoptionsitemselected(), che puoi lasciare così com è (serve a definire il comportamento della funzione Up della action bar). Eclipse segnalerà alcuni errori: la mancata importazione di alcune classi, da correggere con Ctrl+Shift+O (su Windows o Linux) oppure Cmd+Shift+O (su Mac); l uso del metodo getactionbar. Questo secondo errore è dovuto al fatto che le API relative alla ActionBars sono definite solo sopra il livello API 11 (HoneyComb): devi controllare la versione della API della piattaforma su cui verrà eseguito il programma (facendo in modo che la chiamata all ActionBar avvenga solo per versioni di API uguali o successive a HoneyComb) e aggiungere il NewApi ) proprio prima dell inizio del metodo oncreate() per evitare errori lint. In Android, lint è uno strumento di analisi del codice statica (cioè non condotta durante l esecuzione), che controlla i file sorgenti di un progetto per individuare i potenziali errori e i possibili miglioramenti al fine di ottimizzare la correttezza, la sicurezza, le prestazioni e altre caratteristiche come usabilità, accessibilità e possibilità di internazionalizzazione. Il file RispostaMainActivity.java, una volta corretti gli errori, dovrebbe apparire all incirca così: package com.example.tutorial5; dichiariamo quale è il file del layout, cioè activity_risposta_ main.xml import android.annotation.suppresslint; import android.app.activity; import android.os.build; import android.os.bundle; import android.support.v4.app.navutils; import android.view.menu; import android.view.menuitem; public class RispostaMainActivity extends public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_risposta_main); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { } getactionbar().setdisplayhomeasupenabled(true); mostra il pulsante Up nella ActionBar } fine metodo public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.activity_risposta_main, menu); return true; } assicuriamoci che la versione di API utilizzata sia uguale o superiore a 11 (HoneyComb) per poter usare le API public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case android.r.id.home: NavUtils.navigateUpFromSameTask(this); 16 E Le apps e ANDROID E2 Eventi
17 stop } return true; return super.onoptionsitemselected(item); } fine metodo onoptionsitemselected() } fine classe RispostaMainActivity.java Tutte le sottoclassi di Activity devono definire il proprio metodo oncreate(). Tale metodo viene chiamato dal sistema ogni volta che si crea un istanza di un attività: come già abbiamo visto, utilizza il metodo setcontentview() per dichiarare qual è il file del layout dell attività e procede a inizializzarla. Arrivati a questo punto, Eclipse dovrebbe aver creato il file di layout activity_risposta_main.xml, che è utilizzato dal metodo setcontentview(), e dovrebbe avere aggiunto la stringa del titolo al file strings.xml, il cui aspetto dovrebbe ora essere simile al seguente: <resources> <string name="app_name">tutorial5</string> <string name="menu_settings">settings</string> <string name="title_activity_main">mainactivity</string> <string name="suggerimento">scrivi qualcosa</string> <string name="scrittasulbottone">trasforma!</string> <string name="title_activity_risposta_main">rispostamainactivity</string> </resources> Apriamo il file activity_risposta_main.xml, eliminiamo il campo di testo che contiene la scritta Hello World che Eclipse vi ha posto automaticamente e, utilizzando l interfaccia grafica, facciamo drag&drop dalla Palette, posizionando sull interfaccia grafica una etichetta (TextView). Apriamo poi l interfaccia testuale per dare il nome miaetichetta alla TextView.Il file activity_risposta_main.xml, dopo le modifiche, avrà all incirca questo aspetto: <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/miaetichetta" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:layout_centervertical="true" tools:context=".rispostamainactivity"/> </RelativeLayout> Ogni nuova attività va aggiunta al file AndroidManifest.xml utilizzando l elemento XML <activity>. Eclipse ci evita di fare questa operazione in quanto la esegue automaticamente. Il file manifesto (AndroidManifest.xml) dovrebbe quindi avere ora una nuova entry simile a questa: <activity android:name=".rispostamainactivity" c T5 Applicazione con due attività 17
18 > <meta-data android:name="android.support.parent_activity" android:value="com.example.tutorial5.mainactivity" /> </activity> L attributo android:parentactivityname dichiara il nome dell attività genitore di questa attività all interno della gerarchia logica dell applicazione. Il sistema usa questo valore per implementare alcuni comportamenti che sono di default nelle ultime versioni delle API (a partire dal livello 16), come, per esempio, definire il comportamento del pulsante di navigazione Up. stop Per le versioni dalla API 11 alla API 15 utilizziamo per lo stesso scopo (definire il comportamento del pulsante Up) il blocco <meta-data> del codice qui sopra, facendo riferimento alle librerie di supporto (già incluse nel Bundle ADT di Eclipse). Possiamo provare a eseguire l applicazione subito, ma la seconda attività per adesso si limita a visualizzare un etichetta vuota, dato che non hai ancora fatto nulla per cambiarne l aspetto e il comportamento. Configurazione della seconda attività All interno della seconda attività devi adesso: ricevere l intento; acquisire i dati dell intento (gli extras); visualizzare la stringa che hai modificato. Ogni attività è chiamata da un intento di qualche tipo. Si può acquisire l intento che ha chiamato l attività col metodo getintent() e reperire i dati di tipo stringa in esso contenuti (extras) col metodo getstringextra(). Se i dati fossero di tipo diverso, non sarebbe comunque un problema: la classe Intent offre una serie di metodi per i tipi primitivi come: <nomeintento>.getintextra () <nomeintento>.getdoubleextra () per gli interi; per i double; e, per gli oggetti serializzabili: <nomeintento>.getserializableextra() stop Quando si ha a che fare con oggetti serializzabili, per ottenere i dati corretti occorre eseguire un casting. Scriveremmo cioè: (NomeClasseSerializzabile) <nomeintento>.getserializableextra() Apri adesso il file RispostaMainActivity.java e modifica il metodo oncreate() per acquisire l intento e recuperare i dati con le istruzioni: Intent miointento = getintent(); String miafrasem= miointento.getstringextra(mainactivity.extra_frasem); Ora devi definire il file di layout e dichiarare la variabile di tipo TextView e nome miaetichetta che si trova nel file R.java (Eclipse lo ha posto lì dopo che lo hai definito nel file activity_risposta_main.xml): setcontentview(r.layout.activity_risposta_main); TextView mialabel = (TextView)findViewById(R.id.miaEtichetta); Assegna poi il valore della variabile stringa miafrasem come testo della etichetta: mialabel.settext(miafrasem); 18 E Le apps e ANDROID E2 Eventi
19 Il metodo completo oncreate() di RispostaMainActivity.java public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Intent miointento = getintent(); ottiene la frase dall intento String miafrasem= miointento.getstringextra(mainactivity.extra_frasem); setcontentview(r.layout.activity_risposta_main); TextView mialabel = (TextView)findViewById(R.id.miaEtichetta); mialabel.settext(miafrasem); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { getactionbar().setdisplayhomeasupenabled(true); mostra il pulsante Up nella ActionBar } si assicura che la versione di API utilizzata sia superiore o uguale a 11 (HoneyComb) per poter usare le API ActionBar dichiara qual è il file del layout, cioè activity_risposta_main.xml individua l oggetto Java corrispondente all elemento grafico di tipo TextView e di nome miaetichetta che hai dichiarato nel file activity_ risposta_main.xml. Chiama questo oggetto mialabel stop } fine metodo oncreate() Se dovessero comparire sui bordi dei glifi rossi, che segnalano qualche errore, cliccaci sopra e controlla che cosa indicano: a volte, basta cliccare due volte sui glifi per forzare l aggiornamento dei file java generati dal sistema ed eliminare così le segnalazioni non veritiere. È ora possibile eseguire l applicazione: nelle immagini seguenti puoi vedere alcune schermate delle attività eseguite su un AVD con Android 4.0. T5 Applicazione con due attività 19
20 20 E Le apps e ANDROID E2 Eventi
21 T Applicazione che reagisce ai sensori di movimento 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, sarai in grado di creare applicazioni per Android capaci di rilevare il movimento dell apparecchio su cui sono in esecuzione Per completare il tutorial, è necessario l ambiente di sviluppo Android come illustrato nell Unità E1: JDK (già installato per programmare in Java) versione 6 e successive Android SDK aggiornato Eclipse (versione 4.2 Juno e successive) configurato con il plugin ADT Questo tutorial ti guiderà alla costruzione con Eclipse di una semplice applicazione che rilevi il movimento (scuotimento) cui è soggetta la macchina su cui è in esecuzione (tipicamente uno smartphone) e lo segnali in un Toast (un messaggio di testo temporaneo). I passi da compiere sono: 1 creazione del progetto; 2 definizione della UI della attività principale (Main_activity); 3 gestione dell evento di movimento; 4 gestione della registrazione dell ascoltatore. stop Premessa Android offre sensori di ogni tipo (per temperatura, luminosità, ); ci interessano, qui, i sensori di movimento: TYPE_ACCELEROMETER, TYPE_MAGNETIC_FIELD, TYPE_ ROTATION_VECTOR e altri. Ciascuno di essi, quando si manifesti l evento al quale è sensibile, restituisce le componenti del corrispondente vettore (accelerazione, campo magnetico, rotazione, ), lungo gli assi x, y e z del sistema cartesiano di riferimento. In questo tutorial, useremo il sensore di accelerazione (TYPE_ACCELEROMETER). Pertanto, i valori di SensorEvent saranno misurati in m/s 2 (metri al secondo per secondo); in particolare, avremo: SensorEvent.values[0] forza di accelerazione lungo l asse x (inclusa l accelerazione di gravità); SensorEvent.values[1] forza di accelerazione lungo l asse y (inclusa l accelerazione di gravità); SensorEvent.values[2] forza di accelerazione lungo l asse z (inclusa l accelerazione di gravità). Sebbene molti smartphone Android comprendano un accelerometro fra i componenti hardware, esistono apparecchi che non lo hanno e apparecchi che non seguono lo standard. Questa applicazione potrà essere eseguita correttamente solo dove l hardware include un accelerometro standard. Il fatto che i valori tengano conto della forza di gravità significa che, per un telefono in caduta libera (evitalo, se puoi ), i valori di x, y e z sono (0, 0, 0), mentre per un telefono poggiato e fermo su un tavolo essi sono (0, 0, 9.81), dove 9.81 rappresenta la componente verticale che annulla l accelerazione di gravità (circa 9,81 m/s 2 ). Nel nostro esempio, visto che ci interessa la variazione della accelerazione dovuta allo scuotimento, il fatto che la gravità sia compresa nel calcolo è irrilevante, poiché essa è costante e sempre attiva e dunque si elide. Se ad esempio consideriamo la variazione dell accelerazione agente sul telefono in un momento p 1, nel quale è soggetto all accelerazione di gravità (G) e a un altra accelerazione A 1, e in un momento p 2, nel quale subisce l accelerazione di gravità e un altra accelerazione A 2, la variazione complessiva di accelerazione del telefono è G + A 1 (G + A 2 ) = A 1 A 2. T6 Applicazione che reagisce ai sensori di movimento 1
22 Per rilevare uno scuotimento dobbiamo però definire innanzitutto che cosa intendiamo per scuotimento. In questo tutorial, diremo che è una successione di due variazioni sensibili di accelerazione (non troppo piccole: dobbiamo definire un valore soglia) in un tempo limitato (intervallo di meno di 1 secondo: variazioni a distanza di 2 minuti una dall altra non possiamo considerarle uno scuotimento!). Definiamo allora una soglia di variazione, per esempio 3. Diciamo cioè che la differenza fra due misurazioni successive del sensore deve essere maggiore di 3 perché la variazione sia sensibile. Ovviamente, 3 è un valore del tutto arbitrario. Naturalmente, poiché l accelerazione è un vettore nello spazio a tre dimensioni, la sua variazione va calcolata a partire dalle variazioni di ciascuna delle sue componenti parallele agli assi del sistema cartesiano scelto come riferimento. Se pensiamo di memorizzare nel vettore float pma la precedente misura dell accelerazione e nel vettore float nma la nuova misura dell accelerazione, il quadrato della variazione DA dell accelerazione è dato, per il teorema di Pitagora, da: (DA) 2 = (pma[0] nma[0]) 2 + (pma[1] nma[1]) 2 + (pma[2] nma[2]) 2 Ai fini del nostro esempio, non fa differenza considerare la variazione effettiva o il suo quadrato, per cui, per semplificare, possiamo risparmiarci di estrarre la radice quadrata di questo valore e ci limitiamo a porre per esso (arbitrariamente) il valore soglia 9 (= 3 2 ). Per quel che riguarda l intervallo di tempo fra due eventi, esiste la possibilità di leggere il valore dell ora in cui un evento si verifica. Esso è dato dalla proprietà timestamp della classe SensorEvent ed è un valore di tipo long, espresso in millisecondi (ms). L intervallo di tempo è quindi dato dalla differenza fra il valore di timestamp dell evento precedente e quello del nuovo evento. long intervallo = timestamp_nuovoevento timestamp_precedenteevento Decidiamo arbitrariamente che fra due eventi debbano passare meno di 500 ms perché si tratti di scuotimento. Ricapitolando, diremo che: il nostro telefono subisce uno scuotimento se viene interessato da due eventi successivi, separati da un intervallo di tempo I < 500 ms, in seguito ai quali subisce una variazione di accelerazione (DA) 2 > 9. Ma come facciamo a ricevere una notifica da un sensore? Dobbiamo creare una classe di ascolto. Si tratta dunque di: implementare l interfaccia SensorEventListener, che ha due metodi: public void onaccuracychanged(sensor sensor, int accuracy) { } public void onsensorchanged(sensorevent event) { } in effetti,dovremo ridefinirli entrambi, anche se il solo gestore che ci interessa, l unico ad avere il codice per reagire all evento, è onsensorchanged(); creare un SensorManager; creare un oggetto sensore (Sensor) e legarlo a un tipo di sensore. Occorrerà poi registrare il sensore sull ascoltatore. I sensori consumano molto la batteria, quindi conviene registrarli quando l attività è in esecuzione e deregistrarli durante le pause, utilizzando, rispettivamente, i metodi onresume() e onpause() della classe Activity. Questi metodi vengono chiamati dal sistema quando una activity entra nello stato di pausa, onpause(), e quando riprende, onresume(). Per registrare e deregistrare l ascoltatore useremo, rispettivamente, i metodi registerlistener() e unregisterlistener(). Siamo ora pronti per iniziare a implementare l applicazione. 6.1 Creazione del progetto Dal menu File, scegliamo la voce Close all per chiudere tutti gli eventuali file di precedenti applicazioni che fossero ancora aperti. Creiamo adesso il progetto della nuova app, che chiameremo Tutorial6, seguendo gli stessi passi degli esempi precedenti: Menu File>New>Project 2 E Le apps e ANDROID E2 Eventi
23 dalla finestra New Project, seleziona la cartella Android e la voce Android Application Project e premi Next; riempi i campi della finestra New Android Application scegliendo il nome Tutorial6 per l applicazione e premi Next; T6 Applicazione che reagisce ai sensori di movimento 3
24 configura l icona di lancio dell applicazione (qui abbiamo lasciato l icona di default) e modifica i colori di sfondo (background, qui verde chiaro) e di fronte (foreground, qui verde più scuro): penserai sicuramente a qualcosa di meglio quando svilupperai le tue app! Quando la tua configurazione è completa, premi Next; 4 E Le apps e ANDROID E2 Eventi
25 crea una BlankActivity nella finestra successiva e premi Next; definisci le caratteristiche della activity appena creata: nome della activity, nome del suo layout, tipo di navigazione, titolo. Premi Finish. T6 Applicazione che reagisce ai sensori di movimento 5
26 Terminato il processo di creazione, avrai quindi una situazione nell IDE Eclipse simile a questa: 6.2 Definizione della UI della attività principale (Main_Activity) Devi adesso creare l interfaccia (grafica) utente (UI, User Interface) della attività principale, editando manualmente il file Activity_main.xml. Per prima cosa, vanno cancellate le eventuali componenti che l IDE Eclipse ha probabilmente inserito in modo automatico nel file (nell esempio, l etichetta TextView, che contiene la scritta Hello World ). La UI della nostra attività conterrà adesso soltanto: <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> L interfaccia non deve contenere altro, visto che lo scopo dell applicazione è di segnalare, con un Toast, il movimento dell apparecchio. 6.3 Gestione dell evento di movimento È la stessa attività principale che dovrà essere ascoltatore del sensore di eventi: tutto il codice necessario sarà quindi nel file MainActivity.java e l attività principale deve implementare l interfaccia SensorEventListener. 6 E Le apps e ANDROID E2 Eventi
27 La dichiarazione della attività inizia dunque con la linea: public class MainActivity extends Activity implements SensorEventListener Devi adesso, come prima cosa, creare le variabili istanza necessarie a gestire gli eventi: private SensorManager miosensormanager; private Sensor miosensore; quelle relative al valore soglia per la variazione di accelerazione (DA) 2 : private float soglia; la variabile relativa all intervallo massimo di tempo fra due variazioni di accelerazione: private long intervallomassimo quelle necessarie a memorizzare i valori di accelerazione precedenti, per poterli confrontare con quelli successivi: private float old_xa; private float old_ya; private float old_za; e, infine, la variabile che riporta l istante dell ultimo evento di variazione: private long oldtime; Nel metodo oncreate(), devi poi creare le variabili istanza dichiarate e, ove necessario, dare loro i valori iniziali: soglia=9.0f; intervallomassimo=500; old_xa=old_ya=old_za=0.0f; oldtime=system.currenttimemillis();//lettura orologio di sistema miosensormanager = (SensorManager) getsystemservice(context.sensor_service); miosensore = miosensormanager.getdefaultsensor(sensor.type_accelerometer); e ora registra l ascoltatore: miosensormanager.registerlistener(this, miosensore, SensorManager.SENSOR_DELAY_NORMAL); LINK E2.1 A questo punto, si tratta di considerare che cosa fare quando si verifica un evento di variazione della accelerazione. Devi cioè definire il metodo gestore dell evento onsensorchanged(). A questo scopo, i passi principali da compiere sono: leggere il tempo in cui avviene l evento, confrontarlo con quello della variazione precedente e verificare se l intervallo tra i due è minore dell intervallo minimo stabilito; se l intervallo è minore del minimo, calcolare la differenza fra le due letture di accelerazione (DA) 2 e, se questa è maggiore della soglia, mostrare il Toast con il messaggio non mi agitare, mi verrà mal di testa. stop Ricorda, man mano che utilizzi nuove classi di sistema, di importare i package necessari utilizzando le combinazioni di tasti Ctrl+Shift+O (su Windows o Linux) oppure Cmd+Shift+O (su Mac); il tasto Shift, in alcune tastiere italiane, è segnato come Maiusc. T6 Applicazione che reagisce ai sensori di movimento 7
28 Ecco come appare il metodo gestore dell evento di variazione della accelerazione: public final void onsensorchanged(sensorevent event) { float deltaaquadro; long nuovotime = event.timestamp; float nuovo_xa = event.values[0]; float nuovo_ya = event.values[1]; float nuovo_za = event.values[2]; } } if ((nuovotime-oldtime)<intervallomassimo){ //calcolo deltaaquadro deltaaquadro= (old_xa nuovo_xa)*(old_xa nuovo_xa)+(old_ya nuovo_ya)*(old_ya nuovo_ya)+(old_za nuovo_za)*(old_za nuovo_za); if (deltaaquadro>soglia){ //segnaliamo lo scuotimento con un messaggio temporaneo Toast.makeText(MainActivity.this, "non agitarmi, mi fai venire mal di testa", Toast. LENGTH_LONG).show(); /* aggiorno i valori del tempo e dei sensori di accelerazione */ } oldtime = nuovotime; old_xa = nuovo_xa; old_ya = nuovo_ya; old_za = nuovo_za; Ed ecco il codice completo di MainActivity.java: package com.example.tutorial6; import android.app.activity; import android.content.context; import android.hardware.sensor; import android.hardware.sensorevent; import android.hardware.sensoreventlistener; import android.hardware.sensormanager; import android.os.bundle; import android.view.menu; import android.widget.toast; public class MainActivity extends Activity implements SensorEventListener{ private SensorManager miosensormanager; private Sensor miosensore; private float soglia; private long intervallomassimo; private float old_xa; private float old_ya; private float old_za; private long oldtime; c 8 E Le apps e ANDROID E2 Eventi
29 @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); miosensormanager = (SensorManager) getsystemservice(context.sensor_service); miosensore = miosensormanager.getdefaultsensor(sensor.type_accelerometer); miosensormanager.registerlistener(this, miosensore, SensorManager.SENSOR_DELAY_ NORMAL); soglia=9.0f; intervallomassimo = 500; old_xa = old_ya= old_za = 0.0F; oldtime = System.currentTimeMillis(); public boolean oncreateoptionsmenu(menu menu) { } getmenuinflater().inflate(r.menu.activity_main, menu); return true; //@Override public final void onaccuracychanged(sensor sensor, int accuracy) { } // questo metodo lo lasciamo vuoto //@Override public final void onsensorchanged(sensorevent event) { float deltaaquadro; long nuovotime = event.timestamp; float nuovo_xa = event.values[0]; float nuovo_ya = event.values[1]; float nuovo_za = event.values[2]; if ((nuovotime-oldtime)<intervallomassimo){ //calcolo deltaaquadro deltaaquadro=(old_xa nuovo_xa)*(old_xa nuovo_xa)+(old_ya nuovo_ya)*(old_ya nuovo_ya)+(old_za nuovo_za)*(old_za nuovo_za); if (deltaaquadro>soglia){ //segnalo lo scuotimento con un messaggio temporaneo Toast.makeText(MainActivity.this, "non agitarmi, mi fai venire mal di testa", Toast. LENGTH_LONG).show(); } c T6 Applicazione che reagisce ai sensori di movimento 9
30 } /* aggiorno i valori del tempo e dei sensori di accelerazione con le ultime rilevazioni */ oldtime = nuovotime; old_xa = nuovo_xa; old_ya = nuovo_ya; old_za = nuovo_za; } /* per evitare di sprecare energia ed esaurire rapidamente la batteria, registro l'ascoltatore quando l'attività si riavvia dopo una pausa, lo deregistro ogni volta che l'attività va in pausa protected void onresume() { super.onresume(); miosensormanager.registerlistener(this, miosensore, SensorManager.SENSOR_DELAY_ NORMAL); protected void onpause() { super.onpause(); miosensormanager.unregisterlistener(this); } } LINK Tutorial 5 Applicazione con due attività In questo esempio non ci sono immagini, in quanto l attività mostra qualcosa solo quando c è movimento. Ti invitiamo a provarla su qualche dispositivo reale e a modificare i valori di soglia e di intervallomassimo per trovare le combinazioni più efficaci. Potrebbe essere interessante dare all utente stesso la possibilità di variare tali valori, per adattarli alle proprie esigenze, attraverso una schermata (attività) aggiuntiva: per farlo, bisognerebbe che l applicazione potesse gestire attività multiple. 10 E Le apps e ANDROID E2 Eventi
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
DettagliTale attività non è descritta in questa dispensa
Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa
DettagliL ambiente di sviluppo Android Studio
L ambiente di sviluppo Android Studio Android Studio è un ambiente di sviluppo integrato (IDE, Integrated Development Environment) per la programmazione di app con Android. È un alternativa all utilizzo
DettagliMANUALE D'USO DEL PROGRAMMA IMMOBIPHONE
1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma
DettagliGuida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
DettagliNUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliCorso Eclipse. Prerequisiti. 1 Introduzione
Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliCOSTER. Import/Export su SWC701. SwcImportExport
SwcImportExport 1 Con SWC701 è possibile esportare ed importare degli impianti dal vostro database in modo da tenere aggiornati più Pc non in rete o non facente capo allo stesso DataBase. Il caso più comune
DettagliINSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)
INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine
DettagliCorso base di informatica
Corso base di informatica AVVIARE IL COMPUTER Per accendere il computer devi premere il pulsante di accensione posto di norma nella parte frontale del personal computer. Vedrai apparire sul monitor delle
Dettaglilo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000
Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,
DettagliGuida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta
Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta. Configurazione Account di posta dell Università di Ferrara con il Eudora email Eudora email può
DettagliIl calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
DettagliInvio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
DettagliTutorial sugli ambienti di sviluppo: Eclipse e NetBeans
Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans Prima di tutto va installato il compilatore, ottenibile scaricando ed installando MinGW o CygWin. MinGW: http://www.mingw.org/download.shtml CygWin:
DettagliSistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate
MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento
DettagliFPf per Windows 3.1. Guida all uso
FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete
DettagliSICURF@D: istruzioni per l uso
: istruzioni per l uso : istruzioni per l uso Indice 1. Premessa 2 2. La registrazione 2 3. L accesso all area per utenti registrati 2 4. La consultazione dei manuali 3 5. L utilizzo degli strumenti di
DettagliINDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.
Gentile Cliente, benvenuto nel Portale on-line dell Elettrica. Attraverso il nostro Portale potrà: consultare la disponibilità dei prodotti nei nostri magazzini, fare ordini, consultare i suoi prezzi personalizzati,
DettagliMobile 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
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliZFIDELITY - ZSE Software & Engineering Pag.1 / 11
ZFIDELITY - ZSE Software & Engineering Pag.1 / 11 Indice Presentazione ZFidelity... 3 Menù Principale... 4 La Gestione delle Card... 5 I tasti funzione... 5 La configurazione... 6 Lettore Con Connessione
Dettagli2.7 La cartella Preparazioni e CD Quiz Casa
2.7 La cartella Preparazioni e CD Quiz Casa SIDA CD Quiz Casa è il cd che permette al candidato di esercitarsi a casa sui quiz ministeriali e personalizzati. L autoscuola può consegnare il cd al candidato
Dettagli. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi
Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare
DettagliManuale Utente MyFastPage
Manuale MyFastPage Utente Elenco dei contenuti 1. Cosa è MyVoice Home?... 4 1.1. Introduzione... 5 2. Utilizzo del servizio... 6 2.1. Accesso... 6 2.2. Disconnessione... 7 2.3. Configurazione base Profilo
DettagliGuida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico
Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico Maribel Maini Indi ndice ce: Procedura di registrazione alla piattaforma e di creazione del proprio
DettagliCREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
DettagliGuida all Utilizzo dell Applicazione Centralino
Guida all Utilizzo dell Applicazione Centralino 1 Introduzione Indice Accesso all applicazione 3 Installazione di Vodafone Applicazione Centralino 3 Utilizzo dell Applicazione Centralino con accessi ad
DettagliFile, Modifica, Visualizza, Strumenti, Messaggio
Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere
DettagliPresentazione della pratica online
Presentazione della pratica online Dalla prima pagina del sito del comune http://www.comune.ficulle.tr.it/, selezionate Sportello Unico Attività Produttive ed Edilizia Selezionate ora ACCEDI nella schermata
DettagliFOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA
FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA Redatto da IZ1FAL Secco Marco Pagina 1 di 15 INDICE 1 1- INSTALLAZIONE... 3 1-1 Scaricare i pacchetti aggiornati... 3 1-2 Startup
DettagliGuida all utilizzo del compilatore lcc-win32 per creare una applicazione console
Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console Il compilatore per i linguaggi c e c++ chiamato lcc-win32 è un prodotto gratuito scaricabile dal sito http://www.cs.virginia.edu/~lcc-win32/
Dettagli30 giorni di prova gratuiti, entra nel sito www.mypckey.com scarica e installa subito mypckey
DA OGGI NON IMPORTA DOVE SEI, IL TUO PC DELL UFFICIO E SEMPRE A TUA DISPOSIZIONE! Installa solo un semplice programma (nessun hardware necessario!), genera la tua chiavetta USB, e sei pronto a prendere
DettagliModulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...
Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...
DettagliConfigurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith
Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................
DettagliDatabase 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
DettagliCorso Corso di di programmazione di di sistemi mobile 1 1. Android Laboratorio. Primo Progetto, Toast
Corso Corso di di programmazione di di sistemi mobile 1 1 Android Laboratorio Primo Progetto, Toast Corso Corso di di programmazione di di sistemi mobile 2 2 Android Studio Per realizzare le nostre applicazioni
DettagliACCESSO AL SISTEMA HELIOS...
Manuale Utente (Gestione Formazione) Versione 2.0.2 SOMMARIO 1. PREMESSA... 3 2. ACCESSO AL SISTEMA HELIOS... 4 2.1. Pagina Iniziale... 6 3. CARICAMENTO ORE FORMAZIONE GENERALE... 9 3.1. RECUPERO MODELLO
Dettagli11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0
11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE
DettagliNOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0
Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2
DettagliIl Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10
MANCA COPERTINA INDICE Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10 epico! è distribuito nelle seguenti versioni: epico!
DettagliManuale Utente Albo Pretorio GA
Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate
DettagliPer effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra
4.5 Stampa 4.5.1 Stampare semplici fogli elettronici 4.5.1.1 Usare le opzioni di base della stampa Per effettuare la stampa di una cartella di lavoro si accede al comando Stampa dal menu File o si utilizza
DettagliIstruzioni per la configurazione di IziOzi
Istruzioni per la configurazione di IziOzi Installazione L'applicazione si può installare da qualunque dispositivo Android a partire dalla versione 4.1 con la procedura standard tramite Google Play Store.
DettagliSettaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.
I TEMI PREDEFINITI (TEMPLATE) Scelta del tema I temi predefiniti di wordpress sono la base di un sito che usa un utente che per ragioni pratiche o per incapacità non può creare un sito usando solo codice
DettagliINDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...
MANCA COPERTINA INDICE IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO... 12 I marchi registrati sono proprietà dei rispettivi detentori. Bologna
DettagliGUIDA UTENTE BILLIARDS COUNTER (Vers. 1.2.0)
------------------------------------------------- GUIDA UTENTE BILLIARDS COUNTER (Vers. 1.2.0) GUIDA UTENTE BILLIARDS COUNTER (Vers. 1.2.0)... 1 Installazione Billiards Counter... 2 Primo avvio e configurazione
Dettagli5-1 FILE: CREAZIONE NUOVO DOCUMENTO
Capittol lo 5 File 5-1 FILE: CREAZIONE NUOVO DOCUMENTO In Word è possibile creare documenti completamente nuovi oppure risparmiare tempo utilizzando autocomposizioni o modelli, che consentono di creare
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 Creare cartelle per salvare il lavoro] Per iniziare dobbiamo imparare a gestire quello spazio bianco che diverrà la
DettagliIntroduzione all uso di Eclipse
Introduzione all uso di Eclipse Daniela Micucci Programmazione Outline Eclipse: concetti generali Definire un workspace Creare un project Importare un file Utilizzo 1 Introduzione Eclipse è un ambiente
DettagliLE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE
LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE Che cosa sono e a cosa servono le caratteristiche? Oltre a descrivere le qualità di un prodotto con un testo generico (descrizione) è possibile dettagliare
DettagliGHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.
*+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti
DettagliNell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo
Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo - la durata del mutuo in anni - l importo del mutuo
DettagliFunzionalità. Trip Trading
Trip Trading Utilizzando la funzionalità di Trip Trading, avrai la possibilità, se lo desideri, di variare in operativo, attraverso lo scambio di riposi e avvicendamenti con i colleghi, il turno mensile
DettagliLeggere un messaggio. Copyright 2009 Apogeo
463 Leggere un messaggio SyllabuS 7.6.3.3 Per contrassegnare un messaggio selezionato puoi fare clic anche sulla voce di menu Messaggio > Contrassegna messaggio. Marcare, smarcare un messaggio I messaggi
DettagliManuale NetSupport v.10.70.6 Liceo G. Cotta Marco Bolzon
NOTE PRELIMINARI: 1. La versione analizzata è quella del laboratorio beta della sede S. Davide di Porto, ma il programma è presente anche nel laboratorio alfa (Porto) e nel laboratorio di informatica della
DettagliIntroduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
DettagliAccess. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database
Microsoft Access Introduzione alle basi di dati Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale limitato Meccanismi di sicurezza, protezione di dati e gestione
DettagliMANUALE UTENTE. Computer Palmare WORKABOUT PRO
MANUALE UTENTE Computer Palmare WORKABOUT PRO INDICE PROCEDURA DI INSTALLAZIONE:...3 GUIDA ALL UTILIZZO:...12 PROCEDURA DI AGGIORNAMENTO:...21 2 PROCEDURA DI INSTALLAZIONE: Per il corretto funzionamento
DettagliDIAGRAMMA CARTESIANO
DIAGRAMMA CARTESIANO Imparerai ora a costruire con excel un diagramma cartesiano. Inizialmente andremo a porre sul grafico un solo punto, lo vedremo cambiare di posizione cambiando i valori nelle celle
DettagliGESGOLF SMS ONLINE. Manuale per l utente
GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo
DettagliMOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
DettagliInstallazione di Zelio Soft 2 su Microsoft Windows Vista
Installazione di Zelio Soft 2 su Microsoft Windows Vista 1. Installazione di Zelio Soft 2 v4.1: Per prima cosa installare Zelio Soft 2 (versione 4.1) lanciandone il setup (doppio click sul file Setup.exe
DettagliDESKTOP. Uso del sistema operativo Windows XP e gestione dei file. Vediamo in dettaglio queste parti.
Uso del sistema operativo Windows XP e gestione dei file DESKTOP All accensione del nostro PC, il BIOS (Basic Input Output System) si occupa di verificare, attraverso una serie di test, che il nostro hardware
DettagliEclipse - Nozioni Base
Eclipse - Nozioni Base Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Dettagli1) GESTIONE DELLE POSTAZIONI REMOTE
IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo
DettagliIl sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.
SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo
DettagliE possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools
Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati
DettagliDirezione Centrale per le Politiche dell Immigrazione e dell Asilo
Direzione Centrale per le Politiche dell Immigrazione e dell Asilo Sistema inoltro telematico domande di nulla osta, ricongiungimento e conversioni Manuale utente Versione 2 Data creazione 02/11/2007 12.14.00
Dettagliper immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1
Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra
DettagliScuola Digitale. Manuale utente. Copyright 2014, Axios Italia
Scuola Digitale Manuale utente Copyright 2014, Axios Italia 1 SOMMARIO SOMMARIO... 2 Accesso al pannello di controllo di Scuola Digitale... 3 Amministrazione trasparente... 4 Premessa... 4 Codice HTML
DettagliSOMMARIO... 3 INTRODUZIONE...
Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...
DettagliISTRUZIONI REGISTRO ELETTRONICO SCUOLANEXT
ISTRUZIONI REGISTRO ELETTRONICO SCUOLANEXT Per l utilizzo di ScuolaNEXT è obbligatorio impiegare il browser Mozilla Firefox, possibilmente aggiornato all ultima versione disponibile dal relativo sito:
DettagliManuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise
Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3
DettagliCOME FARE UNA RICHIESTA DI ASSISTENZA ON LINE (AOL)
COME FARE UNA RICHIESTA DI ASSISTENZA ON LINE (AOL) Cos è l AOL? Pag. 2 Come inviare una richiesta AOL Pag. 3 La risposta dell assistenza Pag. 5 Come rispondere ad una risposta AOL Pag. 7 Ulteriori nozioni
DettagliCTVClient. Dopo aver inserito correttamente i dati, verrà visualizzata la schermata del tabellone con i giorni e le ore.
CTVClient Il CTVClient è un programma per sistemi operativi Windows che permette la consultazione e la prenotazione delle ore dal tabellone elettronico del Circolo Tennis Valbisenzio. Per utilizzarlo è
Dettagli4. Un ambiente di sviluppo per Java
pag.15 4. Un ambiente di sviluppo per Java Esistono in commercio molti ambienti di sviluppo utilizzati dai programmatori Java, in particolare si tratta di editor complessi che mettono a disposizione tools
DettagliGUIDA UTENTE WEB PROFILES
GUIDA UTENTE WEB PROFILES GUIDA UTENTE WEB PROFILES... 1 Installazione... 2 Primo avvio e registrazione... 5 Utilizzo di web profiles... 6 Gestione dei profili... 8 Fasce orarie... 13 Log siti... 14 Pag.
DettagliSW Legge 28/98 Sommario
SW Legge 28/98 Questo documento rappresenta una breve guida per la redazione di un progetto attraverso il software fornito dalla Regione Emilia Romagna. Sommario 1. Richiedenti...2 1.1. Inserimento di
DettagliServizio on-line di Analisi e Refertazione Elettrocardiografica
Servizio on-line di Analisi e Refertazione Elettrocardiografica Guida utente Scopo del servizio... 2 Prerequisiti hardware e software... 3 Accesso all applicazione... 4 Modifica della password... 7 Struttura
DettagliManuale per la configurazione di AziendaSoft in rete
Manuale per la configurazione di AziendaSoft in rete Data del manuale: 7/5/2013 Aggiornamento del manuale: 2.0 del 10/2/2014 Immagini tratte da Windows 7 Versione di AziendaSoft 7 Sommario 1. Premessa...
DettagliCreare e ripristinare immagine di sistema con Windows 8
Creare e ripristinare immagine di con Windows 8 La versione Pro di Windows 8 offre un interessante strumento per il backup del computer: la possibilità di creare un immagine completa del, ovvero la copia
DettagliCome costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali
PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video
DettagliCos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)
Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) 1 Aprire Access Appare una finestra di dialogo Microsoft Access 2 Aprire un
Dettagli5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record
5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1
Dettagli2. LOGIN E RECUPERO DATI DI ACCESSO
1. ACCESSO AL SISTEMA La prima schermata cui si accede consente le seguenti operazioni: Login Registrazione nuovo utente Recupero password e/o nome utente 2. LOGIN E RECUPERO DATI DI ACCESSO L accesso
DettagliCERTIFICATI DIGITALI. Manuale Utente
CERTIFICATI DIGITALI Procedure di installazione, rimozione, archiviazione Manuale Utente versione 1.0 pag. 1 pag. 2 di30 Sommario CERTIFICATI DIGITALI...1 Manuale Utente...1 Sommario...2 Introduzione...3
DettagliIstruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.
DettagliCome modificare la propria Home Page e gli elementi correlati
Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni
DettagliGestire immagini e grafica con Word 2010
Gestire immagini e grafica con Word 2010 Con Word 2010 è possibile impaginare documenti in modo semi-professionale ottenendo risultati graficamente gradevoli. Inserire un immagine e gestire il testo Prima
DettagliGuida informatica per l associazione #IDEA
Guida informatica per l associazione #IDEA Questa guida vi spiegherà come utilizzare al meglio gli strumenti informatici che utilizza l associazione #IDEA in modo da facilitare il coordinamento con tutti
Dettagliper immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1
Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella
DettagliACQUISTI MASSIVI SU SCUOLABOOK
ACQUISTI MASSIVI SU SCUOLABOOK Manuale d uso v1.4 Sommario Manuale d uso v1.4... 1 Storico revisioni... Errore. Il segnalibro non è definito. 1. Area Scuole... 2 1.1 Richiedi il tuo account... 2 1.2. Accedi
DettagliModulo 2 Uso del computer e gestione dei file
Modulo 2 Uso del computer e gestione dei file 2.1.1.1 Primi passi col computer Avviare il computer Windows è il sistema operativo più diffuso per la gestione dei personal computer, facile e amichevole
DettagliAUTOMATIZZARE UN'AZIONE COMUNE DI WORD USANDO UNA MACRO
AUTOMATIZZARE UN'AZIONE COMUNE DI WORD USANDO UNA MACRO Con questa esercitazione guidata imparerai a realizzare una macro. Una macro è costituita da una serie di istruzioni pre-registrate che possono essere
DettagliGESCO MOBILE per ANDROID
GESCO MOBILE per ANDROID APPLICAZIONE PER LA GESTIONE DEI DISPOSITIVI GSM GESCO aggiornamenti su www.gesco.it GUIDA ALL USO Vi ringraziamo per aver scelto la qualità dei prodotti GESCO. Scopo di questa
DettagliOffice 2007 Lezione 02. Le operazioni più
Le operazioni più comuni Le operazioni più comuni Personalizzare l interfaccia Creare un nuovo file Ieri ci siamo occupati di descrivere l interfaccia del nuovo Office, ma non abbiamo ancora spiegato come
DettagliWORD 97 SCRIVERE UNA TESI DI LAUREA
WORD 97 SCRIVERE UNA TESI DI LAUREA PASSO 1 Per prima cosa pensiamo al formato generale della pagina: i margini richiesti da una tesi sono quasi sempre più ampi di quelli di un testo normale. Apriamo ora
Dettagli