2010-08-22 6 views
6

Je voudrais savoir si nous pouvons continuer à appeler un service pour récupérer les résultats et les afficher dans la liste de saisie semi-automatique.Mettre à jour dynamiquement la boîte de saisie semi-automatique dans Android?

J'ai un écran avec la zone de texte et lorsque l'utilisateur commence à entrer dans cette zone de texte, la saisie semi-automatique doit être remplie avec les données. Les données ne seront pas codées en dur et seront récupérées via la connexion http. Je pense que je dois appeler la connexion http dans la méthode onTextChanged d'Edittext mais c'est la solution parfaite.

De plus, ce type d'implémentation devrait-il être fait dans une application mobile. Depuis, cette fonctionnalité est basée sur le Web. Cela peut-il être fait dans une application mobile aussi?

Est-ce faisable?

+0

Dupliquer http://stackoverflow.com/questions/3405935/dynamic-data-for-adapter-attached-to-edittext – ankitjaininfo

Répondre

2

Ecrivez un SimpleCursorAdapter personnalisé. Associez maintenant cet adaptateur à votre EditText. Voici le code pour construire un objet curseur et le retourner:

public class ValueCursorAdapter extends SimpleCursorAdapter implements Filterable 
{ 

    ... 
// overrise the newView() to associate mCursor[1] and mCursor[2] to relevant views within 
    ... 

    @Override 
    public Cursor runQueryOnBackgroundThread(CharSequence constraint) 
    { 
     MatrixCursor mCursor = new MatrixCursor(new String[] { "_id", "uri", "label" }); 
     .. // result = ?? 
      while (result.hasNext()) 
      { 
       mCursor.addRow(new Object[] { count, "uri", "title"}); 
       count++; 
      } 
     return mCursor; 
    } 
} 

Voici un exemple pour Customizing Cursor Adapter. Vous devrez peut-être le personnaliser pour l'adapter à vos besoins.

+0

cela fonctionnera dynamiquement. Ce que je veux dire, c'est que la demande ne sera pas envoyée seulement une première fois mais elle sera envoyée sur tous les caractères entrés dans l'edittext. Est-ce faisable? – sunil

+0

Oui! La méthode 'runQueryOnBackgroundThread' est appelée pour chaque caractère pressé. – ankitjaininfo