La mia prima app android!

Documenti analoghi
Android lezione 9 Le listview

ProgettAzione tecnologie in movimento - V anno Unità 4 - Applicazioni per i sistemi mobili

Corso sul PACCHETTO OFFICE. Modulo Access

Stampa Guidata Serie in 19 passi. Creazione di una serie di documenti testualicon la tecnica Stampa Guidata Serie OpenOffice 2.3.0

Versione 1.7. Manuale per Creatori Corsi. Parte I: Accesso e Creare Risorse

Lezione 6 Gestione degli eventi dei widget

La nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:

Sistemi Mobili e Wireless Android Action bar e menu

Creare maschere personalizzate

In-app billing per comuni mortali puntata 1

Microsoft Outlook Di Nunziante Esposito. `*************` Quinta parte: Come gestire la rubrica (contatti). `***********`

I Circuiti combinatori: LOGISIM

COME CREARE UN BLOG DA ZERO LEZIONE 4 GUIDA RAPIDA BLOGGER

TUTORIAL LIBRI IN SIMBOLI

Protezione dei documenti di Microsoft Office 2007 per utenti e aziende

ISTRUZIONI IN BREVE SULL USO DEL SITO JOOMLA FASE 1 : REGISTRARSI

Come usare la piattaforma StartUp

Cloud GDrive, Dropbox

Excel memorizza il riferimento alla cella A1 sotto forma di distanza dalla cella contenente la formula.

La tua prima app su Android

Joomla: come inserire una galleria di immagini nel nostro sito?

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL

Programma di navigazione internet: Internet Explorer

SISTEMA GESTIONE TOMBINI

Sesta parte: Come creare una lista di distribuzione e come gestirla dalla rubrica.

Manuale rapido agenda Zimbra. Per entrare nella propria agenda via web digitare il link

REGISTRO DELLE IMPRESE

7. Moduli e blocchi parte 1

Manuale d uso Gestionale NOVACAF

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

Corso Corso di di programmazione di di sistemi mobile 1 1. Android Laboratorio. Primo Progetto, Toast

TUTORIAL LIBRI IN SIMBOLI

Si accede alla piattaforma digitando nel browser l indirizzo: dopo di chè si apre la seguente pagina,

INDICE. Vista Libretto Pt. Coordinate 2. Inserimento e modifica dei punti di coordinate note 4. Inserimento e modifica dei punti di orientamento 5

Nota: per aprire un file in elenco è anche possibile fare doppio click con il tasto sinistro del mouse sul file desiderato.

Cosa sono le maschere

PROCEDURA ONLINE PER LA SOMMINISTRAZIONE AGLI STUDENTI DEL QUESTIONARIO A RISPOSTE APERTE TRAMITE GOOGLE DRIVE*

Modifica Pagina Web. Pulsante LogOut: cliccare per uscire dall'ambiente di amministrazione

Sistemi Mobili e Wireless Android - Risorse

WINKHOUSE. Tutorial 15. Esportazione / Importazione dati tra winkhouse versione desktop e winkhouse versione android.

CoderDojo Firenze AppInventor2 Iniziamo! Multimedia Carica File Scegli file Screen1 Titolo Icona SALVIAMO! Pulsante Interfaccia Utente


Questo corso di formazione è stato creato da 5 organizzazioni che si occupano di diritti delle persone con disabilità intellettive in cinque diversi

Corso sul PACCHETTO OFFICE. Modulo Access

Calcolare con il computer: Excel. Saro Alioto 1

SEE Electrical Expert V4: FAQ

Tutorial su Codelite. Luca Ceriani 2011 Federico Cerutti

Produzione di un clip video promozionale per un azienda di catering

Il proprietario di una catena di negozi vuole confrontare il reddito (in euro) dei suoi 5 negozi, riportato nella seguente tabella

CONFIGURAZIONE AVANZATA DI UNA VISTA IN DRUPAL

Sistemi Mobili e Wireless Android Interfacce utente: Widget e Layout (1)

ListView. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Personalizzazione del report

Corso di programmazione

Come creare un modulo con Google Drive

Guida rapida. Indice: Creare un progetto Gestire e modificare un progetto Visualizzare i risultati di un progetto o una valutazione

I QUIZ di Tecnologie Informatiche in

Sistemi Mobili e Wireless Android Interfacce utente: Widget e Layout (2)

ISCRIZIONI. Impostazioni form ECDL

@ ITT M. BUONARROTI, TRENTO ANDROID DEVELOPMENT UI PERSONALIZZATE E MENU. RAMAN KAZHAMIAKIN OSCAR GIOVANNI DE

Scritto da Administrator Mercoledì 16 Marzo :55 - Ultimo aggiornamento Mercoledì 16 Marzo :16

Presentazione con PowerPoint

Abstract Questo documento descrive il back-end del sito web del progetto MOVIO. In particolare è riferito all uso dell Archivio Media.

Release MOVIO SCMS. Versione Tutorial. Commenti Dichiarazione di copyright

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Creare una gif animata con GIMP!

Esercitazione. Excel: le macro. C.1 Registrazione di macro

1. seleziona una qualsiasi cella della tabella dati da analizzare 2. dal menu dati clicca su rapporto tabella pivot

per ulteriori informazioni consultare la guida disponibile on line all indirizzo:

WINKHOUSE Tutorial 7 Prospettiva Agenda

SEE Electrical Expert: FAQ COME MODIFICARE I DATI ALL INTERNO DEL CARTIGLIO DEL MODELLO

Analisi dei dati con Excel

N.B. 1.3 Impostazioni di sicurezza di Internet Explorer: Active X. Guida all'utilizzo di Web-Rainbow. Consiglio Nazionale delle Ricerche

Tesina esame Programmazione di Sistemi Mobile Realizzato da Roberto Giuliani Matricola icloud. Inserimenti, modifiche e cancellazioni

Jclic Download e installazione

Corso di Cmap Tools. 5-Lavorare con le risorse

Guida in linea di Forcepoint Secure Messaging

IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI. tramite file tracciato

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Associazione semplice

VISUALIZZAZIONE IMPIANTI SU MAPPE

Acquisire audio digitale: per iniziare...

Foglio di calcolo con OpenOffice Calc III

Gestire le Spese Famigliari e personali in modo efficace Parte 2 - aggiungere tabelle statistiche automatiche

Scopo di questa prima parte del tutorial è di illustrare una procedura per rendere trasparente lo sfondo di una immagine.

Introduzione a Visual Studio 2005

Creare una sfera di vetro

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

GUIDA ALLE TABELLE PIVOT *

Appunti di Excel per risolvere alcuni problemi di matematica (I parte) a.a

Excel. Il foglio di lavoro. Il foglio di lavoro Questa viene univocamente individuata dalle sue coordinate Es. F9

Definire una chiave primaria. Microsoft Access. Definire una chiave primaria. Definire una chiave primaria. Definire una chiave primaria

Visual basic base Lezione 03. Gli eventi

TUTORIAL: Scritta Infuocata

Presentazione con PowerPoint

Formattare il testo con gli stili

Insert > Object > Chart

13 Le funzioni di ricerca e riferimento

Usare il mouse e la tastiera

Utilizzo delle Maschere in Microsoft Access

Transcript:

La mia prima app android! Beh, in tutto questo studiare android come funziona e come si sviluppa, ho deciso di rendere disponibile la prima app che ho sviluppato, si tratta di una semplice applicazione che illumina e spenge lo schermo (io la trovo utilissima come torcia). Questa applicazione non la trovate sull android market (ancora mi ci devo iscrivere) quindi se siete interessati a scaricarla ecco qua il qr-code: E l url diretto invece: http://italialinux.altervista.org/files/lightdroid.apk Piu in la penso che rilascero anche i sorgenti, magari al termine delle lezioni androdi che sto portando avanti potrebbe essere la base di un applicazione di esempio finale, per far vedere un intero progetto Android come portarlo avanti. Per ora se vi va potete scaricarla (mi farete un grande piacere :D). Se ci sono problemi o malfunzionamenti lasciate un commento e vi risponderò! Android Lezione 5 Il Context Menu In questa lezione introduciamo un nuovo oggetto dell interfaccia di Android: il Context Menu. Si tratta di uno dei menu messi a disposizione dal sistema

android, e viene chiamato quando l utente tocca per qualche secondo una View, per la quale è stato registrato un oggetto appunto di tipo Context Menu. Questo menu può essere utilizzato in vari contesti, per esempio si potrebbero voler mostrare delle opzioni se un utente tiene premuto il dito su una casella di testo, magari mostrando un elenco di opzioni disponibili, oppure durante la visualizzazione di un immagine per mostrare delle opzioni relative ad essa, etc. Passiamo ora a vedere come implementarlo. Per riempire le voci del menu sono disponibili diverse modalità, in questa guida vedremo principalmente quella basata sul file xml. Se state seguendo i tutorial aprite il progetto ItalialinuxExample che abbiamo iniziato durante le lezioni precedenti, altrimenti potete scaricarlo da qua Prima di tutto (per comodità) creiamo una cartella menu all interno di res: Qui andremo a mettere tutti i file xml relativi alle voci di menu. Ogni file indicherà un menù. Quindi creiamo un nuovo menu, clickando col destro sul folder appena creato selezionando: New -> Android XML File. Si aprirà una schermata simile alla seguente: Diamo un nome al File e selezioniamo come tipo: Menu. Nell esempio il file avrà come nome example(.xml). Premiamo Finish. Si apre così la schermata per editare i file xml (in questo caso i menù). Il file può essere editato in due modi: 1. Editando direttamente il sorgente 2. Utilizzando l interfaccia messa a disposizione da eclipse.

Noi utilizzeremo direttamente il secondo metodo, mostrando poi il risultato finale dell XML. Andiamo quindi a ad aggiungere tre elementi al nostro file menu: 1. 2. 3. TestItemUno TestItemDue TestItemTre Per farlo premiamo il pulsante add, si aprirà la seguente finestra: In questo caso, dovendo inserire un elemento del menu selezioniamo Item e diamo Ok Si aggiungerà un elemento, e ora verranno mostrate tutte le proprietà disponibile, in questo caso a noi interessa modificare solo due proprietà: id, e Title. Come id mettiamo itemuno_id e come Title: TestItemUno. Ripetiamo la stessa operazione anche per gli altri due elementi e salviamo. Così avremo il nostro menu bello e pronto da essere inserito nel ContextMenu. Il risultato finale visto dall xml sará il seguente: <?xml version="1.0" encoding="utf-8"> ; A questo punto siamo pronti per caricare il nostro menu. Prendiamo la nostra Activity, FirstActivity e iniziamo con l aggiungere gli import necessari (lo so che Eclipse ci aiuta in tutto e ce li inserisce per noi, ma ritengo che sia meglio

comunque metterli a mano almeno le prime volte ) import android.view.contextmenu; import android.view.contextmenu.contextmenuinfo; import android.view.menuinflater; A questo punto associamo il ContextMenu alla nostra TextView, utilizzando il metodo: registerforcontextmenu(view view); Che serve appunto ad associare un Context menu con una View. Quindi nel nostro esempio la chiamata diventerá: registerforcontextmenu(localtext); Dove ricordo che localtext era la TextView creata nelle lezioni precedenti, e ovviamente questa chiamata andrá messa dopo l inizializzazione e dichiarazione della TextView. A questo punto dobbiamo creare il metodo oncreatecontextmenu: public void oncreatecontextmenu(contextmenu menu, View v,contextmenuinfo menuinfo){ super.oncreatecontextmenu(menu, v, menuinfo); MenuInflater mymenu = getmenuinflater(); mymenu.inflate(r.menu.example, menu); Spieghiamo linea per linea: La prima linea chiama il metodo oncreatecontextmenu della classe padre La seconda linea dichiara un oggetto MenuInflater necessario per istanziare un file xml del menu all interno di un oggetto Menu. Con la terza linea chiamiamo il metodo inflate dell oggetto appena creato, che carica il menu dichiarato in R.menu.example all interno del ContextMenu menu (Con R.menu.example ci riferiamo appunto al file example.xml)

Ora se lanciamo l applicazione e proviamo a tenere il dito sul testo della TextView (ricordo che questo articolo é basato sulle lezioni precedenti) gia vediamo che il menu compare correttamente. Ovviamente non abbiamo terminato, in quanto dobbiamo anche associare delle azioni ad ogni elemento del menu, in questo esempio faremo apparire un messagio che stampa il nome del menu selezionato. La gestione della selezione é gestita dal metodo: oncontextitemselected, che andrá quindi implementato nella nostra classe, nel nostro esempio sará: public boolean oncontextitemselected(menuitem item) { Toast.makeText(this, item.gettitle(), Toast.LENGTH_SHORT).show(); return true; Questo metodo viene chiamato ogni volta che si seleziona una voce del menu. E l oggetto Item contiene le informazioni relative alla voce di menu selezionata. come si puo facilmente intuire con: item.gettitle(); Serve per prendere il campo title della voce del menu. Mentre con: Toast.makeText(this, item.gettitle(), Toast.LENGTH_SHORT).show(); Questa linea di codice invece, stampa sullo schermo il titolo dell elemento selezionato. Per utilizzarla dovete aggiungere il seguente import: import android.widget.toast; Con questo penso sia tutto. Per scaricare i sorgenti di questa lezione andate qua.

Android Lezione 4 I bottoni Nella lezione abbiamo visto come far scrivere del testo alla nostra applicazione, ora introduciam un altro degli oggetti base delle interfacce grafiche per android: I bottoni. In questa lezione spieghermo come inserirli nel progetto, e come gestire gli eventi di pressione del bottone. Modificheremo l applicazione di esempio aggiungendo 2 pulsanti che modificheranno il testo visualizzato nella TextView creata nell articolo precedente. Come per le textview anche i bottoni si definiscono all interno dei file xml del layout (ovviamente ogni activity avrà il suo file di layout). Ricordo che i file xml che gestiscono il layou si trovono all interno della cartella res/layout. Nel nostro esempio il file che andremo a modificare è main.xml. Abbiamo due possibilità per inserire il bottone, tramite il gui designer, e direttamente all interno dell xml (in pratica è la stessa cosa, visto che il gui designer scrive all interno del file xml). La prima modalità la potete vedere nella screenshot poco sopra, aprite sezione Form Widget e trascinate un button all interno dell area dell applicazione. Mentre se vogliamo definirlo a livello di codice xml dobbiamo inserire una stringa simile alla seguente: <Button android:text="button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content">

</Button> Dove: android:text indica il nome che verrà visualizzato nel pulsante android:id indica l id del pulsante che verrà utilizzato per accedervi a livello di codice android:layout_width indica la larghezza dell oggetto android:layout_height indica l altezza dell oggetto Chiariamo il significato di wrap_content, che non sembra essere una definizione di dimensione, infatti serve ad indicare che l oggetto sarà grande abbastanza per il suo contenuto. Salviamo e andiamo a controllare la classe R.java (ricordo che si trova nella cartella gen/. Vediamone ora il contenuto: package italialinux.example; public final class R { public static final class attr { public static final class drawable { public static final int icon=0x7f020000; public static final class id { public static final int button1=0x7f050000; public static final class layout { public static final int main=0x7f030000; public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; Come possiamo vedere è stato automaticamente aggiunto una variabile button1 all interno della subclass id (Ricordate

che avevamo definito l id del bottone con @id/button1?). Bene una volta definito il pulsante non ci resta altro che gestirne la pressione. Per fare questo si deve: Creare una classe che implementa OnClickListener e fare l override del metodo onclick(). Associare questa classe al bottone Ora vedremo due possibili modalità per gestire il click su di un pulsante. Il primo consiste nel fare l override del metodo onclick direttamente all interno della funzione per settare il Listener, il secondo esempio invece mostra come farlo utilizzando una classe ad-hoc. Prima di tutto diamo un occhiata agli import necessari: import android.widget.button; import android.view.view.onclicklistener; Ora ovviamente ci serve l accesso al bottone, questo lo facciamo mediante la findviewbyid, definiamo quindi una variabile di tipo Button all interno della nostra Activity (nell esempio l ho definita una variabile interna del metodo oncreate): Button firstbutton = (Button) findviewbyid(r.id.button1); Ora prima di procedere con la spiegazione dei due metodi, vi invito a vedere i metodi disponibili per la classe Button, noterete la presenza dei metodi settext(charsequence ) e gettext(), che ci permettono di modificare/ottenere runtime il testo visualizzato all interno del bottone. Quindi cambiamo il testo al nostro pulsante con Greetings : firstbutton.settext("greetings"); L associazione del listener con il bottone avviene mediante il metodo setonclicklistener della classe button che prende come argomento un oggetto di tipo View.OnClickListener. Passiamo ora a vedere il primo dei due metodi che per gestire

il click su di un pulsante. Il codice base in questo caso è molto semplice: firstbutton.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { //Stampa un messaggio ); In pratica stiamo facendo l override del metodo onclick direttamente all interno della nostra activity. Quindi per esempio potremo approfittarne per modificare il testo della textview che avevamo dichiarato nella lezione precedente. Per farlo dobbiamo prima fare una piccola modifica, ovvero dobbiamo portare la dichiarazione della variabile localtext al di fuori del metodo oncreate, ovvero renderla una variabile di classe. Inseriamo quindi nel pezzo di codice precedente, all interno di onclick la seguente riga: localtext.settext("hello again from Italialinux"); Così facendo abbiamo completato la gestione della pressione del pulsante. Questo metodo è utile secondo me nel caso in cui dobbiamo far fare operazioni elementari al nostro bottone, che coinvolgono un numero ristreetto di oggetti. Personalmente ritengo anche che contribuisca a rendere il codice meno leggibile (ma questa è una mia opinione). Passiamo ora al secondo caso. Per fare questo aggiungiamo un secondo bottone chiamato button2, e carichiamolo all interno della nostra activity (questa volta non ve lo spiego, ve lo lascio come esercizio), e creiamo una classe per gestire l evento onclick chiamata ButtonAction. Create quindi un nuovo file java chiamato ButtonAction.java, lo scheletro della nostra classe sarà il seguente: package italialinux.example;

import android.view.view; import android.view.view.onclicklistener; public class ButtonAction implements OnClickListener { @Override public void onclick(view arg0) { // TODO Auto-generated method stub Notate che questo codice è autogenerato da Eclipse. Come possiamo vedere la nostra classe implementa l interfaccia OnClickListener, che è quella che appunto contiene il metodo onclick che andremo a popolare. Ora quello che vogliamo fare è modificare nuovamente la TextView con il messaggio: Hello from a ButtonAction!!. Per farlo questa volta non possiamo usare direttamente localtext, in quanto ci troviamo all interno di un classe differente. Quindi la soluzione migliore é passare alla classe gli oggetti che ci servono (dipende dalla nostre esigenze) quindi, dal momento che dobbiamo modificare i valori della variabile localtext, che é una TextView, creiamo un costruttore che prende un argomento di tipo TextView appunto, che verrá salvato all interno di una variabile di classe. Ora possiamo fare l override del metodo onclick. Il risultato finale sará simile al seguente: package italialinux.example; import android.view.view; import android.view.view.onclicklistener; import android.widget.textview; public class ButtonAction implements OnClickListener { TextView btnlocaltext;

public ButtonAction(TextView tv) { super(); btnlocaltext = tv; @Override public void onclick(view arg0) { btnlocaltext.settext("hello from a ButtonAction!!"); Mentre nell Activity, dovremo prendere il riferimento al pulsante, come fatto per il button1 e assegnarli il Listener appena creato. Il che diventa: Button secondbutton = (Button)findViewById(R.id.button2); secondbutton.setonclicklistener(new ButtonAction(localText)); Una piccola precisazione: Nell implementare la vostra classe, prima di eseguire qualsiasi operazione con bottoni, label, etc dovete chiamare la setcontentview con almeno un layout. Altrimenti l applicazione non riuscirá a partire. Infine uno screenshot di come appare la versione aggiornata dell applicazione: I sorgenti aggiornati della lezione li potete trovare qua La prossima laezione vedremo i primi esempi di menu.