Android Laboratorio - programmazione mobile Corso di Laurea in
by user
Comments
Transcript
Android Laboratorio - programmazione mobile Corso di Laurea in
Android Laboratorio Primo Progetto, Toast Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1 1 Android Studio Per realizzare le nostre applicazioni utilizzeremo Android Studio, sviluppato da Google, che presenta un editor grafico con anteprima per la realizzazione dei layout, include molti template, e utilizza il Gradle come strumento di build automation. Nel caso in cui Android Studio si apra direttamente sull’ultimo progetto creato potete cambiare l’impostazioni andando in Settings->System Settings e spuntando l’opzione Reopen last project on startup Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 2 2 Per creare un nuovo progetto bisogna selezionare la voce "Start a new Android Studio project", si dovranno inserire i nomi dell’applicazione (Application Name), dell’azienda e il package name che identifica universalmente la nostra applicazione. Attenzione! Android Studio crea in automatico il nuovo progetto nella cartella "Project Location" dell’ultimo progetto creato. Una volta inseriti i dati si procede con la selezione della voce Phone and Tablet e nella schermata "Add an activity to mobile" bisogna selezionare "Empty Activity" e continuare fino al termine del wizard di creazione. Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 3 3 Avviare un’app Per avviare un’applicazione basta selezione la voce Run App dal menu Run. Potete decidere se avviare l’applicazione su un dispositivo mobile collegato al computer e con la modalità sviluppatore debug USB attivo oppure tramite emulatore. Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 4 4 Log Quando si sviluppa un applicazione si ha spesso la necessità di effettuare del debug per verificare se alcuni comportamenti sono come noi c’è li aspettiamo. In android esiste la classe Log e i seguenti metodi statici Log.v() => VERBOSE Log.d() => DEBUG Log.i() => INFO Log.w() => WARN Log.e() => ERROR Ogni log viene rappresentato sul debug con un colore diverso in base al suo significato, un log di tipo Error viene visualizzato con il colore rosso. private static final String TAG = "MyActivity"; Log.i(TAG, "info"); Log.e(TAG, "error"); Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 5 5 Creazione della UI Per poter creare l’user interface android studio mette a disposizione sia un editor grafico che un editor testuale. L’edito grafico consente di effettuare il drag & drop degli elementi direttamente sulla view che si sta creando. Inoltre è possibile customizzare la view inserita tramite le proprietà che vengono elencante nella parte destra in basso. Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 6 6 L’editor testuale ci consente di visualizzare la gerarchia delle view e ci consente di visualizzare meglio le proprietà impostate. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="@dimen/text_view_width" android:layout_height="90dp" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Medium Text" android:id="@+id/textView" /> </LinearLayout> Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 7 7 Proprietà base delle View Ogni View ha delle proprietà obbligatorie che sono layout_width e layout_height le quali definiscono la lunghezza e l’altezza della View. Tali proprietà possono assumere i valori di: o wrap_content indica che la dimensione dalla view è data dal suo contenuto o match_parent indica che la dimensione è pari a quella della view padre o dimension è un valore numerico seguito da dp (90dp o @dimen/text_view_width) Altre proprietà utili per personalizzare e differenziare le view sono o background dove è possibile inserire un colore di sfondo o id identificativo con cui è possibile referenziare in altri file xml o recuperare da codice o padding è utile per creare spazio all’interno della view o margin è utile per creare dello spazio tra le view Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 8 8 Linear Layout Le proprietà tipiche del linear layout sono: o orientation che assume i valori di "vertical" o "horizontal" e consente di indicare l’orientamento dei figli o gravity="center" specifica la posizione dei figli, center indica che gli elementi vengono posizionati in modo centrato rispetto all’asse verticale e orrizontale Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 9 9 TextView Le proprietà tipiche della TextView sono: o text che ci permette di inserire il testo da visualizzare o textStyle ci permette di modificare il testo in bold e italic o textColor che modifica il colore del testo o gravity specifica la posizione del testo in base alla grandezza della view o textSize per impostare la dimensione del test in sp (es 10sp) Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1010 EditText Le proprietà tipiche della EditText sono: o hint per impostare il testo da visualizzare quando l’utente non ha inserito nessun valore o inputType per impostare il tipo di valore di inserimento, esempio textPassword per utilizzare la EditText come campo per inserire la password di accesso Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1111 Button Le proprietà tipiche della EditText sono: o text per impostare il testo del pulsante o onClick se si vuole invocare un metodo dell’activity senza recuperare e impostare il listener sull’oggetto Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1212 Recupero di una view Attraverso il metodo findViewById e l’identificatico del componente creato, si possono recuperare le View corrispondenti e utilizzare gli oggetti ottenuti per eseguire azioni, registrare listener, ecc… Button button=(Button)findViewById(R.id.button_vis); Alcuni metodi sono: • setText(String)che imposta il testo passato in ingresso • getText() restituisce il testo inserito •setOnClickListener(View.OnClickListener)per impostare un oggetto che resta in attesa dell’evento di click sulla view. Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1313 Esercizio 1 Si vuole creare una applicazione che chieda all’utente Username e Password. Una volta inseriti i dati richiesti in apposite aree ( per password utilizzare il corretto type), l’utente potrà visualizzare quello che ha inserito attraverso altre TextView in seguito alla pressione di un pulsante. Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1414 Toast Un toast è un semplice messaggio utilizzato principalmente per fornire un feedback all’utente su un azione compiuta da quest’ultimo. Il toast viene mostrato per un determinato tempo e con un messaggio specifico. Toast.makeText(Contextcontext, Char Sequencetext, intduration); Toast.makeText(Contextcontext, int textResId, intduration); Si può anche personalizzare il toast utilizzando i metodi presenti all’interno della classe Toast. Per visualizzarlo con la durata scelta e nel contesto specificato basta invocare il metodo show(); Toast.makeText(MainActivity.this,"Esempio Toast", Toast.LENGTH_SHORT).show(); Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1515 Esercizio 2 Aggiungere alla precedente applicazione un controllo: se almeno una delle due aree di testo è vuota, visualizzare un toast di errore, altrimenti un toast con un messaggio di buona riuscita dell’inserimento. Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1616 Esercizio 3 Aggiungere un RadioGroup con due RadioButton al precedente esercizio per indicare il tempo di visualizzazione del toast (short o long) Corso di diprogrammazione di di sistemi mobile Corso programmazione sistemi mobile 1717