Android AutoCompleteTextView es una vista de texto editable que muestra una lista de sugerencias cuando el usuario comienza a escribir texto. Cuando un usuario comienza a escribir, aparecerá un menú desplegable basado en los caracteres ingresados, definidos en el límite de umbral y el usuario puede elegir un elemento de la lista para reemplazar el texto.
AutoCompleteTextView es una subclase de la clase EditText, por lo que podemos heredar fácilmente todas las propiedades de EditText según nuestros requisitos.
La lista desplegable se obtendrá utilizando el adaptador de datos y estas sugerencias aparecerán solo después de ingresar la cantidad mínima de caracteres definida en el límite de Umbral. El límite de Umbral se utiliza para definir el número mínimo de caracteres que el usuario debe escribir para ver la lista desplegable de sugerencias.
En Android, podemos crear un control AutoCompleteTextView de dos maneras, ya sea manualmente en un archivo XML o crearlo en el archivo de actividad mediante programación.
Primero creamos un nuevo proyecto siguiendo los siguientes pasos:
- Haga clic en Archivo, luego en Nuevo => Nuevo proyecto .
- Después de eso, incluya el soporte de Kotlin y haga clic en siguiente.
- Seleccione el SDK mínimo según su conveniencia y haga clic en el botón Siguiente .
- Luego seleccione la actividad vacía => siguiente => finalizar .
Diferentes atributos del widget AutoCompleteText –
Atributos XML | Descripción |
---|---|
Android: identificación | Se utiliza para identificar de forma única el control. |
Android: gravedad | Se utiliza para especificar cómo alinear el texto como izquierda, derecha, centro, arriba, etc. |
android:texto | Se utiliza para establecer el texto. |
Android:Tamaño del texto | Se utiliza para establecer el tamaño del texto. |
Android: estilo de texto | Se utiliza para establecer el estilo del texto como negrita, cursiva. |
android:fondo | Se utiliza para establecer el color de fondo de la vista de texto. |
android: pista | Se utiliza para configurar el texto de sugerencia de visualización en la Vista de texto. |
android: altura máxima | Se utiliza para establecer la altura máxima de la vista Texto. |
android: ancho máximo | Se utiliza para establecer el ancho máximo de la vista Texto. |
Android: relleno | Se utiliza para establecer el relleno de izquierda, derecha, arriba y abajo. |
Agregue AutoCompleteTextView en activity_main.xml
En este archivo, agregaremos el widget AutoCompleteTextView y Button y configuraremos sus atributos para que se pueda acceder a ellos en el archivo kotlin.
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:// schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/linear_layout" android:gravity="center"> <AutoCompleteTextView android:id="@+id/autoTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:hint="@string/hint"/> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/submit"/> </LinearLayout>
Modifique el archivo strings.xml para agregar la array de strings
Aquí, especificaremos el nombre de la actividad y definiremos otras strings que se pueden usar en diferentes lugares de nuestra actividad. Otra cosa importante es que definiremos string_array que contiene los elementos para la lista de sugerencias de AutoCompleteTextView .
XML
<resources> <string name="app_name">AutoCompleteTextViewInKotlin</string> <string name="hint">Please type language...</string> <string name="submit">Submit</string> <string name="submitted_lang">Submitted language:</string> <string-array name="Languages"> <item>Java</item> <item>Kotlin</item> <item>Swift</item> <item>Python</item> <item>Scala</item> <item>Perl</item> <item>Javascript</item> <item>Jquery</item> </string-array> </resources>
Acceda a AutoCompleteTextView en el archivo MainActivity.kt
En primer lugar, declaramos una vista de texto automático variable para acceder al widget desde el diseño XML.
val autotextView = findViewById<AutoCompleteTextView>(R.id.autoTextView)
luego, declaramos otra variable languages para obtener los elementos de la array de strings del archivo strings.xml.
val languages = resources.getStringArray(R.array.Languages)
Cree un adaptador y agréguelo a AutoCompleteTextView de LinearLayout usando
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, languages) autotextView.setAdapter(adapter)
Estamos familiarizados con otras actividades en artículos anteriores, como acceder al botón y configurar OnClickListener, etc.
Kotlin
package com.geeksforgeeks.myfirstkotlinapp import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity import android.widget.ArrayAdapter import android.widget.AutoCompleteTextView import android.widget.Button import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val autotextView = findViewById<AutoCompleteTextView>(R.id.autoTextView) // Get the array of languages val languages = resources.getStringArray(R.array.Languages) // Create adapter and add in AutoCompleteTextView val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, languages) autotextView.setAdapter(adapter) val button = findViewById<Button>(R.id.btn) if (button != null) { button ?.setOnClickListener(View.OnClickListener { val enteredText = getString(R.string.submitted_lang) + " " + autotextView.getText() Toast.makeText(this @MainActivity, enteredText, Toast.LENGTH_SHORT).show() }) } } }
Archivo AndroidManifest.xml
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http:// schemas.android.com/apk/res/android" package="com.geeksforgeeks.myfirstkotlinapp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Ejecutar como emulador:
Publicación traducida automáticamente
Artículo escrito por Praveenruhil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA