Android AutoCompleteTextView zeigt Objektinformationen anstelle von Text im Querformatmodus an

8

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%     
Sriman 02.10.2012, 00:23
quelle

5 Antworten

10

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     
mlapeyre 06.05.2015 11:38
quelle
6

Ja, überschreibe einfach die Methode toString () in deinem POJO.

%Vor%     
Aprian 02.10.2012 01:14
quelle
3

Erstellen Sie eine benutzerdefinierte Klasse, die <AutoCompleteTextView /> erweitert. Zum Beispiel:

%Vor%

Aber anstelle von <AutoCompleteTextView/> müssen Sie Ihre benutzerdefinierte verwenden. Zum Beispiel:

%Vor%

Ich hoffe, es hilft. Naja, zumindest hat es für mich getan.

    
user1551217 17.10.2012 12:54
quelle
0

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.

    
Samet 25.01.2013 10:10
quelle
0

Das ist Ihre Antwort:

%Vor%     
Vahid.Ahani 14.01.2014 19:33
quelle