Android: controllo AutoCompleteTextView

Un AutoCompleteTextView è una visualizzazione simile a EditText, ad eccezione del fatto che mostra automaticamente un elenco di suggerimenti di completamento mentre l'utente sta digitando.

L'elenco dei suggerimenti viene visualizzato nel menu a discesa. L'utente può scegliere da lì un elemento con cui sostituire il contenuto della casella di modifica.

Attributi AutoCompleteTextView

Di seguito sono riportati gli attributi importanti relativi al controllo AutoCompleteTextView. Puoi controllare la documentazione ufficiale di Android per un elenco completo di attributi e metodi correlati che puoi utilizzare per modificare questi attributi in fase di esecuzione.

Suor n Attributo e descrizione
1

android:completionHint

Definisce il suggerimento visualizzato nel menu a discesa.

2

android:completionHintView

Definisce la visualizzazione dei suggerimenti visualizzata nel menu a discesa.

3

android:completionThreshold

Definisce il numero di caratteri che l'utente deve digitare prima che i suggerimenti di completamento vengano visualizzati in un menu a discesa.

4

android:dropDownAnchor

Questa è la vista a cui ancorare il menu a discesa di completamento automatico.

5

android:dropDownHeight

Specifica l'altezza di base del menu a discesa.

6

android:dropDownHorizontalOffset

La quantità di pixel di cui il menu a discesa deve essere spostato orizzontalmente.

7

android:dropDownSelector

Questo è il selettore in un elenco a discesa.

8

android:dropDownVerticalOffset

La quantità di pixel di cui il menu a discesa deve essere spostato verticalmente.

9

android:dropDownWidth

Specifica la larghezza di base del menu a discesa.

10

android:popupBackground

Questo imposta lo sfondo.

Esempio

Questo esempio ti guiderà attraverso semplici passaggi per mostrare come creare la tua applicazione Android utilizzando Linear Layout e AutoCompleteTextView.

Passo Descrizione
1 Utilizzerai l'IDE di Android Studio per creare un'applicazione Android e denominarla come GUIDemo3 in un pacchetto com.example.guidemo3 come spiegato nel capitolo Hello World Example .
2 Modificare il file src / MainActivity.java per aggiungere un evento clic.
3 Modifica il contenuto predefinito del file res / layout / activity_main.xml per includere il controllo dell'interfaccia utente Android.
4 Definire le costanti necessarie in res / valori / strings.xml di file
5 Esegui l'applicazione per avviare l'emulatore Android e verifica il risultato delle modifiche apportate nell'applicazione.

Di seguito è riportato il contenuto del file di attività principale modificato src/com.example.guidemo3/MainActivity.java. Questo file può includere ciascuno dei metodi fondamentali del ciclo di vita.

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

Di seguito sarà il contenuto di res/layout/activity_main.xml file -

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

Di seguito sarà il contenuto di res/values/strings.xml per definire queste nuove costanti -

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

Di seguito è riportato il contenuto predefinito di 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>

Proviamo a eseguire il tuo GUIDemo3applicazione. Presumo che tu abbia creato il tuoAVDdurante l'impostazione dell'ambiente. Per eseguire l'app da Android Studio, apri uno dei file di attività del progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Android Studio installa l'app sul tuo AVD e la avvia e se tutto va bene con la configurazione e l'applicazione, verrà visualizzata la seguente finestra dell'emulatore:

La seguente schermata apparirà dopo che "pa" sarà stato digitato in AutoCompleteTextView -

Esercizio

Consiglierò di provare l'esempio precedente con diversi attributi di AutoCompleteTextView nel file XML di layout e al momento della programmazione per avere un aspetto diverso di AutoCompleteTextView. Prova a renderlo modificabile, cambia il colore del carattere, la famiglia del carattere, la larghezza, la dimensione del testo ecc. Puoi anche provare l'esempio precedente con più controlli AutoCompleteTextView in un'unica attività.