Cada campo de texto espera un cierto tipo de entrada de texto, como una dirección de correo electrónico, un número de teléfono o texto sin formato. Debes especificar el tipo de entrada para cada campo de texto en tu app para que el sistema muestre el método de entrada de software adecuado, como un teclado en pantalla.
Más allá del tipo de botones disponibles con un método de entrada, puedes especificar comportamientos como si el método de entrada proporciona sugerencias ortográficas, capitaliza las nuevas oraciones y reemplaza las botón de retorno de carro con un botón de acción, como Listo o Siguiente. En esta página, se muestra cómo para especificar estas características.
Cómo especificar el tipo de teclado
Declara siempre el método de entrada para tus campos de texto agregando
android:inputType
al
<EditText>
.
Por ejemplo, si quieres un método de entrada para ingresar un número de teléfono, usa el
Valor de "phone"
:
<EditText android:id="@+id/phone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/phone_hint" android:inputType="phone" />
Si el campo de texto es de una contraseña, usa el valor "textPassword"
para que el campo de texto
oculta la entrada del usuario:
<EditText android:id="@+id/password" android:hint="@string/password_hint" android:inputType="textPassword" ... />
Hay varios valores posibles documentados con el atributo android:inputType
.
y puedes combinar algunos de los valores para especificar la apariencia del método de entrada
los comportamientos del modelo.
Cómo habilitar sugerencias de ortografía y otros comportamientos
El atributo android:inputType
te permite especificar varios comportamientos para la entrada.
. Lo más importante es que si tu campo de texto está destinado a la entrada de texto básica, como una
mensaje de texto: habilita la corrección ortográfica automática con el "textAutoCorrect"
valor.
Puedes combinar diferentes comportamientos y estilos de métodos de entrada con el
atributo android:inputType
. Por ejemplo, aquí te mostramos cómo crear un campo de texto que
escribe con mayúscula la primera palabra de una oración y también corrige automáticamente los errores ortográficos:
<EditText android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType= "textCapSentences|textAutoCorrect" ... />
Cómo especificar la acción del método de entrada
La mayoría de los métodos de entrada de software proporcionan un botón de acción del usuario en la esquina inferior que es apropiado para
el campo de texto actual. De forma predeterminada, el sistema usa este botón para las acciones Next o
Done, a menos que el campo de texto admita texto de varias líneas, como con
android:inputType="textMultiLine"
: En este caso, el botón de acción es un vagón.
el resultado. Sin embargo, puedes especificar otras acciones
que podrían ser más apropiadas para tu campo de texto.
como Enviar o Ir.
Para especificar el botón de acción del teclado, usa el
android:imeOptions
con un valor de acción, como "actionSend"
o "actionSearch"
. Por ejemplo:
<EditText android:id="@+id/search" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/search_hint" android:inputType="text" android:imeOptions="actionSend" />
Luego, puedes escuchar las pulsaciones en el botón de acción definiendo un
TextView.OnEditorActionListener
para el elemento EditText
. En tu
o un objeto de escucha, responde al ID de acción IME correspondiente que se define en la
Clase EditorInfo
,
como, por ejemplo,
IME_ACTION_SEND
,
como se muestra en el siguiente ejemplo:
Kotlin
findViewById<EditText>(R.id.search).setOnEditorActionListener { v, actionId, event -> return@setOnEditorActionListener when (actionId) { EditorInfo.IME_ACTION_SEND -> { sendMessage() true } else -> false } }
Java
EditText editText = (EditText) findViewById(R.id.search); editText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_SEND) { sendMessage(); handled = true; } return handled; } });
Cómo proporcionar sugerencias de autocompletar
Si quieres brindar sugerencias a los usuarios mientras escriben, puedes usar una subclase de
Se llamó a EditText
AutoCompleteTextView
Para implementar la función de autocompletar, debes especificar un
Adapter
que proporciona el texto
sugerencias. Hay varios adaptadores disponibles, según el origen de los datos, como
como a partir de una base de datos o un array.
En el siguiente procedimiento, se describe cómo configurar un AutoCompleteTextView
que
brinda sugerencias a partir de un array con
ArrayAdapter
- Agrega la clase
AutoCompleteTextView
a tu diseño. Este es un diseño que solo incluye texto :<?xml version="1.0" encoding="utf-8"?> <AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/autocomplete_country" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- Define el arreglo que contiene todas las sugerencias de texto. Por ejemplo, aquí está
un array de nombres de países:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="countries_array"> <item>Afghanistan</item> <item>Albania</item> <item>Algeria</item> <item>American Samoa</item> <item>Andorra</item> <item>Angola</item> <item>Anguilla</item> <item>Antarctica</item> ... </string-array> </resources>
- En tu
Activity
oFragment
, usa el siguiente código para especifica el adaptador que proporciona las sugerencias:Kotlin
// Get a reference to the AutoCompleteTextView in the layout. val textView = findViewById(R.id.autocomplete_country) as AutoCompleteTextView // Get the string array. val countries: Array<out String> = resources.getStringArray(R.array.countries_array) // Create the adapter and set it to the AutoCompleteTextView. ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries).also { adapter -> textView.setAdapter(adapter) }
Java
// Get a reference to the AutoCompleteTextView in the layout. AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country); // Get the string array. String[] countries = getResources().getStringArray(R.array.countries_array); // Create the adapter and set it to the AutoCompleteTextView. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries); textView.setAdapter(adapter);
En el ejemplo anterior, se inicializa un
ArrayAdapter
nuevo para vincular cada elemento en el Array de cadenascountries_array
en unTextView
que existe en Diseñosimple_list_item_1
. Este es un diseño de Android que ofrece un aspecto estándar del texto en una lista. -
Asigna el adaptador a
AutoCompleteTextView
llamando asetAdapter()