Autore Topic: [facile] EditText e attributi imeOptions ed inputType  (Letto 12409 volte)

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
[facile] EditText e attributi imeOptions ed inputType
« il: 21 Marzo 2010, 01:01:47 CET »
+7
Livello di difficoltà: facile
Versione SDK utilizzata: 1.5
Link al file compresso del progetto eclipse: file in allegato

Prendendo spunto da una richiesta d'aiuto ho deciso di scrivere questo breve Tutorial sull'impiego degli attributi android:imeOptions e android:inputType all'interno di un EditText.

Il primo attributo, android:imeOptions, viene utilizzato per controllare il tasto azione/invio della tastiera.
Generalmente sulle EditText multilinea questo tasto viene utilizzato per andare a capo, mentre in quelle su singola linea viene associato ad un'azione (Vai, Cerca, Invia, Avanti, etc).

L'attributo può assumere i seguenti valori: actionGo, actionSearch, actionSend, actionNext, actionDone e actionNone.
I nomi sono autoesplicativi, per maggiori dettagli rimando alla lettura della documentazione ufficiale.


Il secondo attributo, android:inputType, serve a specificare il tipo di input che l'EditText deve acquisire.
I tipi disponibili si dividono in 4 classi generiche (text, number, phone e datetime) le quali possono contenere delle varianti (textEmailAddress, textPassword, numberSigned, numberDecimal, etc).

L'elenco completo dei valori possibili è il seguente:
  • none
  • text
  • textCapCharacters
  • textCapWords
  • textCapSentences
  • textAutoCorrect
  • textAutoComplete
  • textMultiLine
  • textImeMultiLine
  • textNoSuggestions
  • textUri
  • textEmailAddress
  • textEmailSubject
  • textShortMessage
  • textLongMessage
  • textPersonName
  • textPostalAddress
  • textPassword
  • textVisiblePassword
  • textWebEditText
  • textFilter
  • textPhonetic
  • number
  • numberSigned
  • numberDecimal
  • phone
  • datetime
  • date
  • time
Le informazioni relative ad ogni singolo tipo sono disponibili sulla documentazione ufficiale.

Questi valori possono anche essere combinati tra loro, separandoli tramite un '|'.

A esempio
Codice (XML): [Seleziona]
android:inputType="numberDecimal|numberSigned"consente l'inserimento di un numero sia decimale che negativo.

Mentre
Codice (XML): [Seleziona]
android:inputType="textShortMessage|textCapSentences"consente di avere l'impostazione del testo per messaggi brevi più la maiuscola automatica alla fine di ogni frase.


E per il momento questo è tutto :)

Sorgenti:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView
                        android:text="android:imeOptions"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:textStyle="bold"
                        android:textSize="20sp"
                        android:layout_margin="10dip"
                        android:gravity="center"></TextView>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:imeOptions="actionNone"
                        android:lines="1"
                        android:hint="actionNone">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:imeOptions="actionSearch"
                        android:lines="1"
                        android:hint="actionSearch">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:imeOptions="actionGo"
                        android:lines="1"
                        android:hint="actionGo">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:imeOptions="actionSend"
                        android:lines="1"
                        android:hint="actionSend">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:imeOptions="actionNext"
                        android:lines="1"
                        android:hint="actionNext">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:imeOptions="actionDone"
                        android:lines="1"
                        android:hint="actionDone">
                </EditText>
                <TextView
                        android:text="android:inputType"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:textSize="20sp"
                        android:textStyle="bold"
                        android:layout_margin="10dip"
                        android:gravity="center"></TextView>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="number"
                        android:lines="1"
                        android:hint="number">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="numberSigned"
                        android:lines="1"
                        android:hint="numberSigned">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="numberDecimal"
                        android:lines="1"
                        android:hint="numberDecimal">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="numberSigned|numberDecimal"
                        android:lines="1"
                        android:hint="numberSigned|numberDecimal">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="phone"
                        android:lines="1"
                        android:hint="phone">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="text"
                        android:lines="1"
                        android:hint="text">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textUri"
                        android:lines="1"
                        android:hint="textUri">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textEmailAddress"
                        android:lines="1"
                        android:hint="textEmailAddress">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textShortMessage"
                        android:lines="1"
                        android:hint="textShortMessage">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textLongMessage"
                        android:lines="1"
                        android:hint="textLongMessage">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textPassword"
                        android:lines="1"
                        android:hint="textPassword">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textVisiblePassword"
                        android:lines="1"
                        android:hint="textVisiblePassword">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textCapCharacters"
                        android:lines="1"
                        android:hint="textCapCharacters">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textCapWords"
                        android:lines="1"
                        android:hint="textCapWords">
                </EditText>
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:inputType="textCapSentences"
                        android:lines="1"
                        android:hint="textCapSentences">
                </EditText>
        </LinearLayout>
</ScrollView>

Bibliografia:
« Ultima modifica: 08 Settembre 2010, 23:25:10 CEST da JD »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #1 il: 21 Marzo 2010, 19:51:25 CET »
0
ottimo!

Grazie  8)

Offline daniele

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +1
    • Mostra profilo
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #2 il: 23 Marzo 2010, 10:57:19 CET »
0
Grazie.

Offline MMarko

  • Utente junior
  • **
  • Post: 128
  • Respect: +5
    • MarcoMatarazzi
    • Mostra profilo
    • La Rocchetta Bed And Breakfast
  • Dispositivo Android:
    HTC Legend
  • Play Store ID:
    MarcoMatarazzi
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #3 il: 04 Maggio 2010, 13:19:08 CEST »
0
Leggendo questo tutorial vorrei provare a prendere la stringa immessa nel campo e memorizzarla su una variabile.
Non riesco a capire come fare

Qualcuno saprebbe darmi qualche dritta?

Grazie

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #4 il: 04 Maggio 2010, 13:36:28 CEST »
+1
Intendi questo?

Codice (Java): [Seleziona]
EditText et = (EditText)findViewById(R.id.EditText01);
String stringa = et.getText().toString();
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline MMarko

  • Utente junior
  • **
  • Post: 128
  • Respect: +5
    • MarcoMatarazzi
    • Mostra profilo
    • La Rocchetta Bed And Breakfast
  • Dispositivo Android:
    HTC Legend
  • Play Store ID:
    MarcoMatarazzi
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #5 il: 04 Maggio 2010, 15:36:45 CEST »
0
Perfetto! Grazie mille!!!  :-)  :-)  :-)  :-)  :-)  :-)  :-)

Offline Splact

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: +1
    • Google+
    • https://www.linkedin.com/profile/view?id=78185089
    • Splact
    • Mostra profilo
    • Splact.com
  • Dispositivo Android:
    One Plus One
  • Play Store ID:
    Dario Carella
  • Sistema operativo:
    Windows 8 64bit
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #6 il: 24 Maggio 2010, 21:00:35 CEST »
0
scusate ma a cosa serve "android:hint"? dato che assume sempre lo stesso valore di "android:inputType"...

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #7 il: 24 Maggio 2010, 21:06:45 CEST »
0
E' il suggerimento che viene mostrato quando l'EditText è vuota. In questo caso visualizza il valore di inputType.
TextView | Android Developers
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Splact

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: +1
    • Google+
    • https://www.linkedin.com/profile/view?id=78185089
    • Splact
    • Mostra profilo
    • Splact.com
  • Dispositivo Android:
    One Plus One
  • Play Store ID:
    Dario Carella
  • Sistema operativo:
    Windows 8 64bit
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #8 il: 24 Maggio 2010, 22:16:44 CEST »
0
 :D ghgh credevo fosse qualcosa di più articolato, scusate ancora la stupida domanda, poi ho notato che stesso eclipse mi fornisce (proprio ora ci vuole) degli hint sui comandi e proprietà XD!
Grazie ancora ;)

Offline JJ

  • Nuovo arrivato
  • *
  • Post: 28
  • Immigrato in Francia...
  • Respect: +1
    • Google+
    • opengeek_blog
    • Mostra profilo
    • OpenGeek
  • Dispositivo Android:
    Nexus 4, Nexus 5, Nexus 7
  • Play Store ID:
    Purple Soc. Coop.
  • Sistema operativo:
    Windows 10
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #9 il: 25 Maggio 2010, 10:55:28 CEST »
0
Grazie della piccola guida, intervieni sempre al momento giusto ;-)!
Mi trovate anche su www.opengeek.it !
Comics Checklist: scopri tutte le uscite dei fumetti in italiano! http://goo.gl/TF6CTn

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #10 il: 22 Febbraio 2011, 10:08:43 CET »
0
Ciao Ragazzi,
è possibile inserendo un testo in una editText cambiare la tastiera all'occorrenza? Mi spiego meglio.
Mettiamo che debba inserire una targa automobilistica formata da 2 lettere 3 numeri e 2 lettere. E' possibile dopo aver inserito le prime 2 lettere cambiare il layout tastiera e avere quello numerico e successivamente rimettere quello alfabetico?
CIAO!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #11 il: 22 Febbraio 2011, 11:29:15 CET »
+1
Credo di si.
Con questo ti metti in ascolto per le modifiche sull'EditText:

TextWatcher | Android Developers

Una volta che l'ultente ha inserito le prime due lettere cambi l'input type con

http://developer.android.com/reference/android/widget/TextView.html#setRawInputType(int)

Fai qualche prova ;)

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #12 il: 22 Febbraio 2011, 11:43:25 CET »
+1
Credo di si.
Con questo ti metti in ascolto per le modifiche sull'EditText:

TextWatcher | Android Developers

Una volta che l'ultente ha inserito le prime due lettere cambi l'input type con

http://developer.android.com/reference/android/widget/TextView.html#setRawInputType(int)

Fai qualche prova ;)
Grazie per la celere risposta! Faccio qualche prova e posto i risultati se tutto va bene! Ciao!

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #13 il: 20 Maggio 2011, 16:08:17 CEST »
0
è possibile bloccare la tastiera a quel metodo di input ? faccio un esempio in un EditText dove devo digitare numeri non solo devo vedere i numeri ma non devo avere la possibilità di passare alla tastiera con
le lettere (magari un errore)!

Offline AriTiAdoro

  • Utente junior
  • **
  • Post: 98
  • Da soli non si va da nessuna parte!!
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:[facile] EditText e attributi imeOptions ed inputType
« Risposta #14 il: 19 Gennaio 2012, 10:49:55 CET »
0
Ragazzii una domanda stupida!! Io devo fare una cosa del genere con tante editText in una sola schermata;ma nel simulatore non mi permette di andare in giu e vedere le altre editText fuori dalla schermata!!! Come faccio?? grazie!!!
Simo :)