Maison  >  Article  >  développement back-end  >  Série de contrôles de l'interface utilisateur Android : AutoCompleteTextView (invite automatique)

Série de contrôles de l'interface utilisateur Android : AutoCompleteTextView (invite automatique)

黄舟
黄舟original
2017-01-19 09:34:532103parcourir

La fonction d'AutoCompleteTextView est similaire aux informations d'invite qui apparaissent à proximité des informations saisies lorsque Baidu ou Google saisissent des informations dans la barre de recherche. Bien sûr, certains adaptateurs sont nécessaires ici

fournit deux zones de saisie intelligentes dans Android, il s'agit de MultiAutoCompleteTextView et AutoCompleteTextView. Leurs fonctions sont à peu près les mêmes. La différence entre celui-ci et AutoCompleteTextView est que MultiAutoCompleteTextView peut toujours ajouter de nouvelles valeurs de sélection dans la zone de saisie. La manière d'écrire est également différente, vous devez appeler setTokenizer() après setAdapter. Présentons-le en détail ci-dessous.

1. AutoCompleteTextView

1. Introduction

Une vue de texte modifiable qui affiche une invite lorsque l'utilisateur saisit des informations. La liste d'invites apparaît dans un menu déroulant dans lequel l'utilisateur peut sélectionner un élément pour compléter sa saisie. La liste d'invites contient des données obtenues à partir d'un adaptateur de données.

2. Méthodes importantes

clearListSelection() : Effacer l'élément de liste sélectionné

dismissDropDown() : Fermez le menu déroulant s'il existe

getAdapter() : Obtenir l'adaptateur
3. Instructions de création

(1) Fichier de mise en page

<AutoCompleteTextView  
 android:id="@+id/edit"  
 android:layout_width="match_parent"  
 android:layout_height="wrap_content" />


(2) Programme

Instancier l'adaptateur

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

Définir l'adaptateur

edit.setAdapter(adapter);

2. MultiAutoCompleteTextView

1 Introduction

Hérité d'AutoCompleteTextView, pour étendre la longueur d'AutoCompleteTextView, vous doit fournir un MultiAutoCompleteTextView.Tokenizer Pour distinguer les différentes sous-chaînes

2. Méthodes importantes

enoughToFilter() : Filtrer lorsque la longueur du texte dépasse le seuil

performValidation() : Au lieu de validant l'intégralité du texte, ce sous La méthode de classe vérifie chaque jeton de texte individuel

setTokenizer(MultiAutoCompleteTextView.Tokenizer t); lorsque l'utilisateur tape, le paramètre tokenizer sera utilisé pour déterminer le texte dans la plage appropriée
3. Mode d'emploi

(1) Fichier de mise en page

<MultiAutoCompleteTextView  
 android:id="@+id/edit1"  
 android:layout_width="match_parent"  
 android:layout_height="wrap_content" />

(2) Programme

Adaptateur instantané

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

Déterminer le scope

edit1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer())

Ce qui suit est un exemple

AutoCommitTest.java

package org.hualang.auto;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.ArrayAdapter;  
import android.widget.AutoCompleteTextView;  
import android.widget.MultiAutoCompleteTextView;  
  
public class AutoCommitTest extends Activity {  
    /** Called when the activity is first created. */  
        private static final String[] autoString=new String[]{"welcome","well",  
                "weatch","weexeview","werap"};  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        //关联关键字  
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,  
                        android.R.layout.simple_dropdown_item_1line,  
                        autoString);  
        AutoCompleteTextView autocomplete=(AutoCompleteTextView)findViewById(R.id.auto);  
        autocomplete.setAdapter(adapter);  
        MultiAutoCompleteTextView multi=(MultiAutoCompleteTextView) findViewById(R.id.multi);  
        //将adapter添加到AutoCompleteTextView中  
        multi.setAdapter(adapter);  
        multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());  
    }  
}

main.xml

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    >  
<TextView  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="自动提示功能演示"  
    />  
<AutoCompleteTextView  
        android:id="@+id/auto"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
/>  
<MultiAutoCompleteTextView  
        android:id="@+id/multi"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
/>  
</LinearLayout>

Les résultats en cours d'exécution sont les suivantes :

Série de contrôles de linterface utilisateur Android : AutoCompleteTextView (invite automatique)

Série de contrôles de linterface utilisateur Android : AutoCompleteTextView (invite automatique)

Série de contrôles de linterface utilisateur Android : AutoCompleteTextView (invite automatique)


Ce qui précède est le contenu de la série de contrôles de l'interface utilisateur Android : AutoCompleteTextView (invite automatique). Pour plus de contenu connexe, veuillez suivre le site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn