Ich verwende einen benutzerdefinierten Adapter mit AutoCompleteTextView. Es funktioniert gut auf dem Emulator und meinem Tablet. Auf meinem Telefon ist jedoch ein Problem im Querformat aufgetreten. Die Auto-Complete-Hinweise, die in diesem Modus angezeigt werden, sind Objekt-Informationen und nicht Text. Wenn ich jedoch ein Element auswähle, werden die Felder korrekt mit Text in den entsprechenden Feldern ausgefüllt.
Auto Complete für andere Felder, die auf Android Stock Array Adapter basieren, funktioniert einwandfrei.
Muss ich etwas in meinem benutzerdefinierten Adapter dafür tun? Ich sah nur eine ähnliche Frage zu SO. Eine Antwort für diese Frage war, die toString-Methode zu überschreiben, aber ich konnte sie nicht genug verstehen, um sie in meinen Code zu implementieren.
Jede Anleitung wird sehr geschätzt werden? Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
BEARBEITEN: Ich habe meinen eigenen Adapter-Quellcode hinzugefügt ....
%Vor%Der richtige Weg ist das Überschreiben der Methode Filter # convertResultToString (Object) in Ihrer privaten ArrayFilter-Klasse.
Wie in der Android-Dokumentation gesagt
public CharSequence convertResultToString (Object resultValue)
Konvertiert einen Wert aus dem gefilterten Set in eine CharSequence. Unterklassen sollte diese Methode überschreiben, um ihre Ergebnisse zu konvertieren. Der Standard Implementierung gibt eine leere Zeichenfolge für Nullwerte oder den Standardwert zurück String-Repräsentation des Wertes.
In Ihrem Fall sollte es so etwas sein:
%Vor%Wenn diese Methode hinzugefügt wird, kann AutoCompleteTextView korrekte Hinweise (in der Querformatansicht) anstelle von Objektreferenzen oder Standard zu String
bereitstellen Erstellen Sie eine benutzerdefinierte Klasse, die <AutoCompleteTextView />
erweitert. Zum Beispiel:
Aber anstelle von <AutoCompleteTextView/>
müssen Sie Ihre benutzerdefinierte verwenden. Zum Beispiel:
Ich hoffe, es hilft. Naja, zumindest hat es für mich getan.
Ich habe die Antwort das letzte Mal gefunden. Ich hatte das gleiche Problem und es scheint, dass Autovervollständigung ConvertToString () -Methode im Querformat statt NewView () und BindView () -Methode verwendet. Sie müssen alle Ihre Cursor-Daten in einen einzigen String ohne "\ n" zurückgeben, so wie die Elemente horizontal über dem Softkeyboard angezeigt werden.
Fügen Sie in Ihrem AutoCompleteTextViewAdapter die Methode hinzu:
%Vor%Ich habe es mit meinem Handy Xperia U und einem anderen Galaxy Note getestet und es funktioniert. So einfach ist das. Natürlich füllen Sie diese Methode abhängig davon, was Sie anzeigen möchten.
Tags und Links android autocompletetextview custom-adapter hints