HTML.it logo
Learn
  • Design
    • Grafica
    • User Interface Design
    • Adobe Creative Suite
    Guide
    Approfondimenti
    Faq
    Notizie
    Tutto in Design >
  • Development
    • .NET
    • ASP
    • CMS
    • Flash
    • Java
    • JavaScript
    • PHP
    • Essentials
    • Ruby
    • XML
    • Editor
    • CSS
    • HTML
    Guide
    Approfondimenti
    Script
    Faq
    Notizie
    Tutto in Development >
  • Mobile
    • Android Studio
    • Cordova
    • Eclipse
    • Objective C
    • Swift
    Guide
    Approfondimenti
    Script
    Faq
    Notizie
    Tutto in Mobile >
  • Server
    • Cloud
    • Database
    • OS
    • Sicurezza
    • Network
    Tutto in Server >
  • Digital Marketing
    • SEO
    • Affiliate Marketing
    • Social Media Marketing
    Tutto in Digital Marketing >
  • Makers
    • Arduino
    • RaspberryPi
    • Stampa 3D
    Guide
    Approfondimenti
    Notizie
    Tutto in Makers >
  • Game Design
    • Unity
    Guide
    Approfondimenti
    Notizie
    Tutto in Game Design >
Download
  • Audio e Video
    • Player Audio Video
    • Codec audio
    • Montaggio
    • Masterizzazione
    • Ripper e Convertitori
    • Speech
    • Creatività
    • Ripresa
    • Riproduzione
    Tutto in Audio e Video >
  • Educazione
    • Bambini
    • Cartoni in Streaming
    • Cucina
    • Salute e Benessere
    • Didattica
    • Istruzione
    • Giochi Didattici
    Tutto in Educazione >
  • Videogame
    • Arcade
    • Avventura
    • Azione
    • Board
    • Carte
    • Giochi di ruolo
    • Giochi Online
    • Puzzle e Enigmistica
    • Simulazione
    • Sparatutto
    • Sport
    • Strategia e Giochi di Guerra
    • Tempo Libero
    Tutto in Videogame >
  • Grafica
    • Accessori & Mappe
    • Animazione
    • CAD – 3D
    • Cattura schermo
    • Convertitori e ridimensionatori
    • Editor
    • Flash
    • Font
    • Ritocco
    • Gallerie e album
    • Icone e loghi
    • Visualizzatori
    Tutto in Grafica >
  • Internet
    • Browser
    • Chat e IM
    • eMail
    • Estensioni & Temi
    • FTP
    • Network
    • News e RSS
    • Peer to Peer
    • Webcam
    Tutto in Internet >
  • Programmazione
    • Accessori
    • CMS e E-Commerce
    • Editor e Compilatori
    • Editor e strumenti Web
    • Linguaggi
    Tutto in Programmazione >
  • Sicurezza
    • Antispam
    • Antispyware
    • Antivirus
    • Server
    Tutto in Sicurezza >
  • Produttività
    • Backup
    • Compressione
    • Connettività
    • Database
    • Fax e Telefonia
    • Gestione disco
    • Ottimizzazione
    • Ufficio
    • Utilità di Sistema
    Tutto in Produttività >
  • Auto
    • Accessori Auto
    • Gare
    • Utility
    Tutto in Produttività >
  • Casa
    • Home Design
    • Home Security
    • IoT
    • Progettazione
    • Smart Home
    Tutto in Produttività >
Notizie
Video
Forum
in  
Trend
GuideHTMLJavaLinguaggio CPythonJavaScriptPHPC++CSSAndroidApprofondimenti
INDICE DELLA GUIDA
Primi passi con Android
  1. 1 Introduzione: perché Android

  2. 2 L'SDK e l'ambiente di sviluppo

  3. 3 Come sviluppare app Android: ibrido o nativo?

  4. 4 Gli elementi e il funzionamento di base di un'applicazione

  5. 5 Il ciclo di vita di un'app Android

  6. 6 La prima app Android con Eclipse

  7. 7 Android Studio: creare un'app Android

Il cuore di un’app Android
  1. 8 Activity, la "prima pagina" dell'applicazione

  2. 9 Il ciclo di vita di un'Activity

  3. 10 Gestire le risorse e gli asset

  4. 11 Intent e messaggi

  5. 12 Le permission

L’interfaccia grafica (GUI)
  1. 13 Il layout di un'app Android

  2. 14 Definire layout in XML, il markup di base

  3. 15 View: le basi dell'interfaccia grafica

  4. lezione
    16 di 96

    Controlli utente

  5. 17 Creare un menu

  6. 18 ActionBar

  7. 19 Le notifiche in Android

  8. 20 Notifiche: Toast e Dialog

  9. 21 Visualizzare pagine Web: WebView

  10. 22 ListView e GridView

  11. 23 Spinner (menu a tendina)

  12. 24 Stili e temi

  13. 25 Creare Custom Adapter

  14. 26 Fragment in Android

  15. 27 Layout adattabili Smartphone/Tablet in Android

Lo storage
  1. 28 Gestire i file

  2. 29 Memorizzare informazioni con SharedPreferences

  3. 30 Database e SQLite

  4. 31 Condividere i dati con i Content Provider

  5. 32 Accedere a ContentProvider

  6. 33 Gestire i dati con Realm

Processi e servizi
  1. 34 Threading

  2. 35 Lavoriamo in backgroud con i Service

Android e il networking
  1. 36 Accedere alla Rete con Volley

  2. 37 Servizi REST su Android

Hardware e sensori
  1. 38 Sensori e SensorManager in Android

  2. 39 Geolocalizzazione con Android

  3. 40 Accelerometro: come utilizzarlo

  4. 41 Touchscreen ed eventi Touch

  5. 42 Multitouch

  6. 43 Rilevare le gesture

  7. 44 Bluetooth

  8. 45 NFC

  9. 46 Fingerprint API

Multimedia
  1. 47 Scattare una foto

  2. 48 Registrare un video

  3. 49 MediaPlayer: riprodurre file audio

  4. 50 MediaPlayer: riprodurre file video

  5. 51 Gestire l'audio

  6. 52 Android e la low latency

  7. 53 Leggere codici a barre e QR code

  8. 54 Face Detection

Grafica
  1. 55 Animazioni con XML

  2. 56 Supporto multirisoluzione

  3. 57 Animazioni con ViewPropertyAnimator

  4. 58 Accelerazione hardware

Telefono
  1. 59 Gestire gli SMS

  2. 60 Elenco delle chiamate: la gestione in Android

  3. 61 Chiamare ed intercettare una chiamata

  4. 62 Gestire i Contatti

Testing delle app
  1. 63 Test delle app

  2. 64 Test con JUnit

  3. 65 Unit Test con Hamcrest

  4. 66 Test delle interfacce utente

  5. 67 Test delle interfacce con Espresso

Pubblicare un’app
  1. 68 AndroidManifest.xml e le capabilities

  2. 69 Preparare l'app per la pubblicazione

  3. 70 Iscrizione a Google e invio dell'app

  4. 71 Market alternativi

  5. 72 Modelli di Monetizzazione

Android Architecture Components
  1. 73 Android Architecture Components

  2. 74 Lifecycle

  3. 75 ViewModel e LiveData

  4. 76 ViewModel: un esempio pratico

  5. 77 Room: ORM su SQLite

  6. 78 Architettura unica con Room, ViewModel e LiveData

Appendice
  1. 79 Riepilogo: Controlli Utente

  2. 80 L'Application Context

  3. 81 Gestione dell'input: un esempio

  4. 82 Applicazioni di rete: un RSS reader

  5. 83 Esecuzione e debug su Eclipse ADT

  6. 84 Eseguire test sull'emulatore e sullo smartphone

  7. 85 Android e la rete

  8. 86 Consumare servizi REST da Android

  9. 87 Debug di applicazioni Android

  10. 88 App Widget

  11. 89 Integrare Github in Android Studio

  12. 90 Creare librerie Android

  13. 91 Adaptive Icons

  14. 92 Android e Java 8

  15. 93 Bluetooth Low Energy (BLE)

  16. 94 Leggere dati in formato JSON

  17. 95 App shortcuts

  18. 96 Instant app

  • Learn
  • Guida Android
  • Controlli utente
lezione
16 di 96

Controlli utente

  • di Giuseppe Maggi
  • 5 Luglio 2017

In questo capitolo, inizieremo ad utilizzare controlli utente per rendere le nostre app interattive. Tutti i componenti di cui parleremo discendono dalla classe View, ma quali sono tra essi i più comuni? Ne elenchiamo alcuni:

  • TextView: la classica label. Serve a rappresentare del testo fisso;
  • EditText: corrisponde all’inputbox di altre tecnologie. Viene usata per permettere l’inserimento del testo. Mediante attributi XML può essere adattata alle proprie necessità. Molto utile è android:inputType i cui valori definiscono i formati più comuni di input (date, password, testo, etc.);
  • Button: è il pulsante. La casistica più comune comporterà la gestione dell’evento click per attivare una qualche reazione nell’Activity;
  • CheckBox: come ci si aspetta definisce un classico flag che può essere attivato o disattivato. Nel codice Java leggeremo il suo stato (checked o unchecked) mediante un valore booleano;
  • Radio: esistono i radiobutton come in ogni altra tecnologia per interfacce utente. Vengono solitamente usati per definire valori alternativi tra loro come il sesso di una persona (maschio/femmina), possesso di facoltà (automunito Sì/No), etc.

Questi non sono che alcuni esempi: come si può immaginare, un elenco esaustivo avrebbe dimensioni imponenti. Tuttavia, si può fare riferimento alla documentazione ufficiale per ulteriori approfondimenti.

Usare i controlli utente

Nel capitolo relativo agli Intent, si era immaginato un form di login.

Un modulo di login in Android

Vediamo come potrebbe essere nel dettaglio.


<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
         <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Username:"/>
         <EditText
        android:layout_width="@dimen/width"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:id="@+id/username" />
    </TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
         <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password:"/>
         <EditText
        android:layout_width="@dimen/width"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:id="@+id/password" />
    </TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
         <Button
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:onClick="login"
         android:text="Login"/>
          <Button
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:onClick="cancel"
         android:text="Cancella"/>
    </TableRow>
</TableLayout>

Notiamo gli aspetti salienti:

  • come layout è stato usato un TableLayout particolarmente adatto alla realizzazione di form che spesso mostrano una struttura a griglia molto regolare;
  • tra i controlli usati alcuni mostrano l’attributo android:id. Serve  per lo più alle EditText usate per inserire username e password dell’utente che sta tentando il login. L’id sarà indispensabile per recuperare dal codice Java i valori inseriti;
  • i due Button presentano l’attributo onClick usato per definire quale metodo dell’Activity si occuperà della gestione del click sul pulsante. Rappresenta una scorciatoia rispetto all’uso dei listener.

Il primo Button presenta questa valorizzazione di onClick:


android:onClick="login"

Ciò comporta che nell’Activity dovremo trovare un metodo della seguente forma:


public void login(View arg0)

dove il nome del metodo corrisponde al valore dell’attributo onClick e il parametro View in input rappresenta il controllo che ha sollevato l’evento, in questo caso il Button.

Uno sguardo da vicino al metodo login nell’Activity ci mostra come queste componenti vengono richiamate nel codice Java.


public void login(View v)
{
       EditText username=(EditText) findViewById(R.id.username);
       EditText password=(EditText) findViewById(R.id.password);
       String account_username=username.getText().toString();
       String account_password=accounts.get(username.getText().toString());
       . . .
       . . .
}

Il metodo findViewById viene usato per recuperare il controllo corrispondente all’id.

Anche in questo caso R.id.username corrisponde all’attributo android:id=”@+id/username” che è stato assegnato all’EditText. Dando uno sguardo alla documentazione dei widget, si dovrà di volta in volta riconoscere quei metodi che servono a recuperare il valore del controllo.

In elementi come TextView e EditText rivolti al trattamento del testo, con un metodo getText() si potrà leggere il contenuto e gestirlo come una stringa.

Se vuoi aggiornamenti su Android, mobile inserisci la tua e-mail nel box qui sotto:

Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi:

17 / 96

Creare un menu

Ultime notizie

Google Cloud Services Platform in beta

Cybersecurity: nelle aziende manca una cultura della sicurezza

Marzipan: App universali per iOS e MacOS?

Pagina 404: l’importanza del design

(In)sicurezza dei Password manager

I Video di HTML.it

Le promozioni di Amazon App Store

Percorsi formativi correlati
Android Mobile Developer

Android Mobile Developer

5
guide
250 ore

Tutti i linguaggi per diventare uno sviluppatore di app per Android.

DB Administrator

DB Administrator

4
guide
80 ore

Come creare applicazioni per il Web con PHP e MySQL per il DBMS.

iOS Mobile Developer

iOS Mobile Developer

4
guide
180 ore

Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.

Java Developer

Java Developer

7
guide
300 ore

I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.

Java Security Expert

Java Security Expert

5
guide
120 ore

Diventare degli esperti in tema di sicurezza delle applicazioni Java.

Maker

Maker

2
guide
50 ore

Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.

NoSQL DB Expert

NoSQL DB Expert

5
guide
200 ore

Le principali guide di HTML.it per diventare un esperto dei database NoSQL.

PHP Cloud Developer

PHP Cloud Developer

7
guide
80 ore

Ecco come i professionisti creano applicazioni per il Cloud con PHP.

PHP Developer

PHP Developer

5
guide
100 ore

Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.

PHP e JavaScript Developer

PHP e JavaScript Developer

6
guide
100 ore

Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.

PHP Framework Expert

PHP Framework Expert

6
guide
120 ore

Realizzare applicazioni per il Web utilizzando i framework PHP.

PHP SysAdmin

PHP SysAdmin

6
guide
80 ore

Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.

Sviluppare un eCommerce con PHP

Sviluppare un eCommerce con PHP

5
guide
120 ore

Fare gli eCommerce developer con Magento, Prestashop e WooCommerce.

Web &amp; Mobile Designer

Web & Mobile Designer

5
guide
300 ore

Percorso base per avvicinarsi al web design con un occhio al mobile.

WordPress Developer

WordPress Developer

5
guide
150 ore

Realizzare siti Web e Web application con WordPress a livello professionale.

Ti consigliamo anche

App Java per Android: librerie per ogni esigenza

  • 20 Lezioni
  • Avanzata

Guida pratica su alcune delle più note librerie open source realizzate in Java e scritte per affrontare le più frequenti problematiche nello sviluppo di applicazioni per Android.

  • Java: Local-Variable Type Inference
  • MongoDB: gestione database con Java

Virtual Reality con Android e Google Cardboard

Guida pratica all'implementazione di un'app per Android in grado di sfruttare le funzionalità messe a disposizione per la realtà virtuale.

  • Android Studio 3.3 e promesse mancate
  • Ubuntu Touch OTA-6

Google Play Store apre alle Progressive Web App

Kotlin è il linguaggio di riferimento per Android (per Google)

Android: termine del supporto per le App a 32bit entro il 2021

  • Guide
  • Approfondimenti
  • Script
  • Q&A
  • Software
  • Tutorial
  • Videogiochi
  • Tag Software
  • News
  • Video
  • Forum
  • Chi siamo
  • Pubblicità
  • Contatti
  • Cookie policy
  • Privacy policy
  • Privacy Policy Newsletter
© HTML.it 1997-2019 | Triboo Media – P. IVA 06933670967 | HTML.it è un periodico telematico reg. Trib. Roma n. 309/2008 | 2.10.3