2009-11-03 6 views
6

Se possiedi un telefono Android, avrai sicuramente notato come in certe app il layout della tastiera può cambiare dal numero standard al solo numero o avere .com o .net pulsanti speciali basati sul tipo di inserimento del campo di testo (ad es. numero di telefono). Quindi ho 2 domande:Android - tasto della tastiera personalizzato e azione

  1. come attivare questa personalizzazione? Sospetto che abbia a che fare con il formato EditText
  2. Questo può essere preso ancora più lontano se voglio aggiungere alcuni pulsanti personalizzati per iniettare un modello specifico? Supponiamo di avere un pulsante AND che quando premuto aggiungerà tutto il carattere "AND" maiuscolo contornato da spazi al campo di testo. Può essere fatto?
  3. Cosa sono non chiedere è come acquisire una combinazione di tasti nell'evento onKeyPress e quindi compilare il campo di testo con un motivo: so già come farlo.

risposta

7

È controllato dall'attributo XML android:inputType (o dal metodo setInputType()).

Per informazioni sulle opzioni disponibili, vedere le pagine relative allo XML attribute o allo object's method.

A titolo di esempio, il seguente codice XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <EditText 
     android:text="example text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="phone" /> 
</LinearLayout> 

vi darà questo layout:

Hosted by imgur.com

mentre la modifica del inputType-textEmailAddress vi darà questa:

Hosted by imgur.com

È possibile personalizzare il pulsante "azione" come spiegato here, ma non credo che ci sia un modo per eseguire la personalizzazione completa delle tastiere in questo momento, ma potrei sbagliarmi.

+1

Molto bello, grazie. Sai se è possibile falsificare il tasto ALT sulla tastiera virtuale in qualche modo? Posso designare dire il tasto HOME come ALT? – Bostone

+1

Nessun problema ... era qualcosa che avrei voluto interpretare comunque :) Non penso che tu possa simulare il tasto alt, ma di nuovo, potrei sbagliarmi. Va notato che è possibile implementare la propria tastiera (più o meno) da zero. Hanno un esempio: http://developer.android.com/guide/samples/SoftKeyboard/index.html –

+1

Capire. Anche se implementare la tastiera completamente personalizzata è forse un po 'troppo per la mia umile app :) – Bostone

1

La cosa che mi interessa è che "inputType" è elencato come proprietà deprecata, il che significa che potrebbe funzionare per un po ', ma - alla fine - Android smetterà di supportarlo. C'è un'altra alternativa?

AGGIORNATO: Il mio male - Sto confondendo con inputMethod.