Android - Control AutoCompleteTextView

Un AutoCompleteTextView es una vista similar a EditText, excepto que muestra una lista de sugerencias de finalización automáticamente mientras el usuario está escribiendo.

La lista de sugerencias se muestra en el menú desplegable. El usuario puede elegir un elemento de allí para reemplazar el contenido del cuadro de edición.

Atributos de AutoCompleteTextView

A continuación se muestran los atributos importantes relacionados con el control AutoCompleteTextView. Puede consultar la documentación oficial de Android para obtener una lista completa de atributos y métodos relacionados que puede usar para cambiar estos atributos en tiempo de ejecución.

No Señor Atributo y descripción
1

android:completionHint

Esto define la pista que se muestra en el menú desplegable.

2

android:completionHintView

Esto define la vista de sugerencias que se muestra en el menú desplegable.

3

android:completionThreshold

Esto define la cantidad de caracteres que el usuario debe escribir antes de que las sugerencias de finalización se muestren en un menú desplegable.

4

android:dropDownAnchor

Esta es la vista a la que se debe anclar el menú desplegable de autocompletar.

5

android:dropDownHeight

Esto especifica la altura básica del menú desplegable.

6

android:dropDownHorizontalOffset

La cantidad de píxeles por la cual el menú desplegable debe compensarse horizontalmente.

7

android:dropDownSelector

Este es el selector en una lista desplegable.

8

android:dropDownVerticalOffset

La cantidad de píxeles por los que el menú desplegable debe compensarse verticalmente.

9

android:dropDownWidth

Esto especifica el ancho básico del menú desplegable.

10

android:popupBackground

Esto establece el fondo.

Ejemplo

Este ejemplo lo llevará a través de sencillos pasos para mostrar cómo crear su propia aplicación de Android usando Linear Layout y AutoCompleteTextView.

Paso Descripción
1 Utilizará Android Studio IDE para crear una aplicación de Android y nombrarla como GUIDemo3 en un paquete com.example.guidemo3 como se explica en el capítulo Ejemplo de Hello World .
2 Modifique el archivo src / MainActivity.java para agregar un evento de clic.
3 Modifique el contenido predeterminado del archivo res / layout / activity_main.xml para incluir el control de la interfaz de usuario de Android.
4 Defina las constantes necesarias en el archivo res / values ​​/ strings.xml
5 Ejecute la aplicación para iniciar el emulador de Android y verifique el resultado de los cambios realizados en la aplicación.

A continuación se muestra el contenido del archivo de actividad principal modificado src/com.example.guidemo3/MainActivity.java. Este archivo puede incluir cada uno de los métodos fundamentales del ciclo de vida.

package com.example.guidemo3;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends Activity {
   AutoCompleteTextView autocomplete;
   
   String[] arr = { "Paries,France", "PA,United States","Parana,Brazil", 
      "Padua,Italy", "Pasadena,CA,United States"};
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      autocomplete = (AutoCompleteTextView)             
      findViewById(R.id.autoCompleteTextView1);

      ArrayAdapter<String> adapter = new ArrayAdapter<String>  
      (this,android.R.layout.select_dialog_item, arr);

      autocomplete.setThreshold(2);
      autocomplete.setAdapter(adapter);
   }
}

A continuación se mostrará el contenido de res/layout/activity_main.xml archivo -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".MainActivity" >
   
   <TextView
      android:id="@+id/textView2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="25dp"
      android:text="@string/example_autocompletetextview" />
      
   <AutoCompleteTextView
      android:id="@+id/autoCompleteTextView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@+id/textView2"
      android:layout_below="@+id/textView2"
      android:layout_marginTop="54dp"
      android:ems="10" />
    
</RelativeLayout>

A continuación se mostrará el contenido de res/values/strings.xml para definir estas nuevas constantes -

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">GUIDemo3</string>
   <string name="example_autocompletetextview">Example showing AutoCompleteTextView<
   /string>
</resources>

A continuación se muestra el contenido predeterminado de AndroidManifest.xml -

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.guidemo3" >
  
      
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.guidemo3.MainActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Intentemos ejecutar tu GUIDemo3solicitud. Supongo que habías creado tuAVDmientras realiza la configuración del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar en la barra de herramientas. Android Studio instala la aplicación en su AVD y la inicia y, si todo está bien con su configuración y aplicación, se mostrará la siguiente ventana del emulador:

La siguiente pantalla aparecerá después de que se escriba "pa" en AutoCompleteTextView -

Ejercicio

Recomendaré probar el ejemplo anterior con diferentes atributos de AutoCompleteTextView en el archivo Layout XML, así como en el momento de la programación para tener una apariencia diferente de AutoCompleteTextView. Intente hacerlo editable, cambie el color de fuente, la familia de fuente, el ancho, el tamaño del texto, etc. y vea el resultado. También puede probar el ejemplo anterior con múltiples controles AutoCompleteTextView en una actividad.