Android - Contrôle AutoCompleteTextView

Un AutoCompleteTextView est une vue similaire à EditText, sauf qu'elle affiche automatiquement une liste de suggestions d'achèvement pendant que l'utilisateur tape.

La liste des suggestions s'affiche dans le menu déroulant. L'utilisateur peut choisir un élément à partir de là pour remplacer le contenu de la zone d'édition par.

Attributs AutoCompleteTextView

Voici les attributs importants liés au contrôle AutoCompleteTextView. Vous pouvez consulter la documentation officielle d'Android pour obtenir la liste complète des attributs et des méthodes associées que vous pouvez utiliser pour modifier ces attributs au moment de l'exécution.

Sr. Non Attribut et description
1

android:completionHint

Cela définit l'indice affiché dans le menu déroulant.

2

android:completionHintView

Ceci définit la vue d'indication affichée dans le menu déroulant.

3

android:completionThreshold

Ceci définit le nombre de caractères que l'utilisateur doit taper avant que les suggestions d'achèvement ne soient affichées dans un menu déroulant.

4

android:dropDownAnchor

Il s'agit de la vue sur laquelle ancrer la liste déroulante de saisie semi-automatique.

5

android:dropDownHeight

Ceci spécifie la hauteur de base de la liste déroulante.

6

android:dropDownHorizontalOffset

La quantité de pixels par laquelle la liste déroulante doit être décalée horizontalement.

sept

android:dropDownSelector

Ceci est le sélecteur dans une liste déroulante.

8

android:dropDownVerticalOffset

La quantité de pixels par laquelle la liste déroulante doit être décalée verticalement.

9

android:dropDownWidth

Ceci spécifie la largeur de base de la liste déroulante.

dix

android:popupBackground

Cela définit le contexte.

Exemple

Cet exemple vous guidera à travers des étapes simples pour montrer comment créer votre propre application Android à l'aide de la disposition linéaire et AutoCompleteTextView.

Étape La description
1 Vous utiliserez l'IDE Android Studio pour créer une application Android et la nommerez GUIDemo3 sous un package com.example.guidemo3 comme expliqué dans le chapitre Exemple de Hello World .
2 Modifiez le fichier src / MainActivity.java pour ajouter un événement de clic.
3 Modifiez le contenu par défaut du fichier res / layout / activity_main.xml pour inclure le contrôle de l'interface utilisateur Android.
4 Définir les constantes nécessaires dans res / valeurs / strings.xml fichier
5 Exécutez l'application pour lancer l'émulateur Android et vérifier le résultat des modifications effectuées dans l'application.

Voici le contenu du fichier d'activité principal modifié src/com.example.guidemo3/MainActivity.java. Ce fichier peut inclure chacune des méthodes fondamentales du cycle de vie.

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);
   }
}

Voici le contenu de res/layout/activity_main.xml fichier -

<?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>

Voici le contenu de res/values/strings.xml pour définir ces nouvelles constantes -

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

Voici le contenu par défaut 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>

Essayons d'exécuter votre GUIDemo3application. Je suppose que vous avez créé votreAVDlors de la configuration de l'environnement. Pour exécuter l'application à partir d'Android Studio, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Android Studio installe l'application sur votre AVD et la démarre et si tout va bien avec votre configuration et votre application, elle affichera la fenêtre Emulator suivante -

L'écran suivant apparaîtra après que "pa" sera tapé dans AutoCompleteTextView -

Exercice

Je recommanderai d'essayer l'exemple ci-dessus avec différents attributs d'AutoCompleteTextView dans le fichier XML de mise en page ainsi qu'au moment de la programmation pour avoir une apparence différente de l'AutoCompleteTextView. Essayez de le rendre modifiable, changez la couleur de la police, la famille de police, la largeur, la taille du texte, etc. et voyez le résultat. Vous pouvez également essayer l'exemple ci-dessus avec plusieurs contrôles AutoCompleteTextView dans une seule activité.