Versuchen Sie es so:
%Vor%Der ArrayAdapter verwendet die toString () - Methode von StudentInfo, um die angezeigten Texte zu generieren. Sie müssen also eine nice toString-Methode implementieren.
Auf diese Weise kann diese Art der Implementierung an jeden Objekttyp angepasst werden.
Btw .: Ich bevorzuge android.R.layout.simple_spinner_dropdown_item statt android.R.layout.simple_dropdown_item_1line
Ihr s1
enthält alle Namen von database
hoffe, das wird dir helfen,
Vom Ansichtsobjekt arg1 wird der Wert der Zeichenfolge abgerufen. Von der ArrayList, die der AutoCompleteTextView übergeben wird, wird die Position des Elements mit dieser Zeichenfolge abgerufen.
in Ihrem Fall würde der Code etwa wie folgt aussehen.
int selectedPos = s1.indexOf ((Zeichenfolge) ((TextView) arg1) .getText ());
selectedPos ist die Position der Zeichenfolge in der angegebenen ArrayList.
Um ein ausgewähltes Objekt aus der Autovervollständigen-Auswahl zu erhalten, das den benutzerdefinierten Datentyp verwendet und die Werte der zugehörigen Liste festlegt. Der folgende Code funktionierte für mich
%Vor%Hinweis: Ich habe Standard-Parameternamen in onItemClick wie arg0-parent, arg1-view, arg2-position & amp; SomeDAO ist ein benutzerdefinierter Datentyp
überschreiben toString
Methode für Modellklasse (StudenInfo in diesem Fall) ist keine gute Idee!
Wenn Sie nur den Text des ausgewählten Elements abrufen möchten, verwenden Sie diesen Code:
Dank an Stefan Richter! Ich möchte hinzufügen, dass es möglich ist, List<T>
direkt zu verwenden, wenn Sie den Adapter erstellen:
Vergessen Sie auch nicht, die Methode toString()
in StudentInfo.class
:
Tags und Links java android android-edittext onitemclicklistener