Ich habe ein MultiAutoCompleteTextView
Widget in meiner Aktivität, das ein ArrayAdapter<String>
hat, das durch ein Ergebnis eines webbasierten Anrufs gefüllt wird. Wenn der Benutzer Zeichen in die Textansicht eingibt, sollte die Liste dieses Adapters im Hintergrund aktualisiert werden. Was ist der beste Weg, dies zu implementieren?
Ich habe bereits versucht, AsyncTask
zu verwenden, um die Zeichenfolgenliste im Hintergrund herunterzuladen, aber notifyDataSetChanged()
wurde vom "nicht-ursprünglichen Thread" aufgerufen. Darüber hinaus scheint dies ein kleiner Kreisverkehr.
Die andere Option, auf die ich gestoßen bin, ist, dass Filterable
verwendet werden kann, aber ich habe keine einfachen Beispiele gefunden ( AutoComplete4 scheint wie ein Overkill zu sein, wie man das macht. Wenn es keine Beispiele gibt, kann jemand einen breiten Überblick über die Schauspieler geben, die ich brauche - Filter, Filterbar, etc.
Auch das ist ein guter Weg zu gehen?
Danke, Danke Rajath
Ich weiß, dass diese Frage alt ist, aber ich musste das Gleiche tun, und ich dachte mir, ich würde die Lösung mit dir teilen oder irgendjemand würde sie brauchen.
Zunächst müssen Sie in der Tat ein AsyncTask
verwenden, um Ihre Daten abzurufen. Davon abgesehen würde ich niemals eine AsyncTask in irgendeiner Weise meine Ansichtsklasse manipulieren lassen. Stattdessen verwende ich lieber einen -Rückruf zusammen mit den Parametern, die Sie in Ihrer AsyncTask benötigen. Sobald die AsyncTask beendet ist, rufen Sie Ihre Callback-Methode auf, die dafür verantwortlich ist, notifyDataSetChanged()
aufzurufen.
Hier ist ein Code:
MyAsyncTask.java
%Vor%MyCallbackClass.java
%Vor%Tags und Links android autocompletetextview backgroundworker