2010-08-22 12 views
6

Ich würde gerne wissen, ob wir fortlaufend einige Dienste für das Abrufen von Ergebnissen aufrufen und in der Autocomplete-Liste anzeigen können.Autocomplete-Box in Android dynamisch aktualisieren?

Ich habe einen Bildschirm mit dem Textfeld und wenn Benutzer beginnt in diesem Textfeld eingeben, sollte die Autovervollständigung mit den Daten gefüllt werden. Die Daten sind nicht fest codiert und werden über eine HTTP-Verbindung abgerufen. Ich denke, ich muss HTTP-Verbindung in OnTextChanged-Methode von Edittext aufrufen, aber das ist die perfekte Lösung.

Darüber hinaus sollte diese Art der Implementierung in der mobilen Anwendung durchgeführt werden. Seit dem ist diese Funktion webbasiert. Kann dies auch in der mobilen Anwendung gemacht werden?

Ist das machbar?

+0

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

Antwort

2

Schreiben Sie eine benutzerdefinierte SimpleCursorAdapter. Verknüpfen Sie diesen Adapter nun mit Ihrem EditText. Hier ist der Code ein Cursor-Objekt zu konstruieren, und es zurückgeben:

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

Hier ist ein Beispiel für Customizing Cursor Adapter. Möglicherweise müssen Sie es an Ihre Anforderungen anpassen.

+0

wird dies für dynamisch arbeiten. Was ich meine, ist, dass die Anfrage nicht nur einmal gesendet wird, sondern für jedes Zeichen, das im Editiertext eingegeben wird. Ist das machbar? – sunil

+0

Ja! Die Methode 'runQueryOnBackgroundThread' wird für jedes gedrückte Zeichen aufgerufen. – ankitjaininfo

Verwandte Themen