Beispiel für benutzerdefinierte setDropDownViewResource spinner Element
Ich würde gerne die Anzeige von zwei Werten in einem drop-down-Sicht auf meinen spinner.
Derzeit, es hat nur den Namen einer Stadt, aber ich möchte auch hinzufügen, ein kleines Stück Feld, um es.
MyCity<MyCityDistance> dataAdapter;
dataAdapter = new MyCity(this, R.layout.mycityrow, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Habe ich den code für benutzerdefinierte Daten-adapter, exapanding meiner Sicht und Halter usw.
Jedoch, das Element bekommt die Karte nicht angezeigt, sowohl die Stadt und Ihre Entfernung von meinem jetzigen Wohnort.
Es zeigt nur was überschrieben, in der toString () - Methode der MyCityDistance Klasse.
Ich habe sogar versucht die Einstellung
dataAdapter.setDropDownViewResource(R.layout.mycityrow);
aber, kein Erfolg. Es wirft einen Fehler.
04-02 11:05:22.600: E/AndroidRuntime(367): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
04-02 11:05:22.600: E/AndroidRuntime(367): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
04-02 11:05:22.600: E/AndroidRuntime(367): at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:376)
04-02 11:05:22.600: E/AndroidRuntime(367): at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:332)
Was ist ein gutes Beispiel, erstellen Sie Ihre eigenen benutzerdefinierten setDropDownViewResource()
?
Selbst wenn ich kommentiere die setDropDownViewResource()
Zeile, bekomme ich den gleichen Fehler.
Hinweis: die einzige Auswirkung, Die mycityrow
aktuelle ist, dass das erste element der Spinner ist zu zeigen, wie pro das layout mycityrow
. Allerdings, wenn ich auf öffnen Sie das drop-down -, das layout ist verloren. Ich will das gleiche layout bei drop-down-Auswahl zu.
InformationsquelleAutor Kapil D | 2012-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinweis: das folgende Beispiel verwendet die eingebaute
android.R.layout.simple_list_item_2
Leider die Farbe des Textes wird wahrscheinlich der gleiche sein wie der hintergrund. Sie können ganz einfach dieses Problem lösen, indem Sie Ihre eigenen benutzerdefinierten Ansicht und verwenden Sie es in den adapter statt.Lassen Sie mich wissen, wenn ich sollte erklären, dass kein Teil davon.
Übergeben die Eltern als null ist äquivalent zu übergeben
attachToRoot
als falsch, wenn aufgeblasen mit dem LayoutInflater.Hab die Lösung, diesen code zu implementieren 🙂 vielen Dank
Hey, vielen Dank für diese nette Lösung. Ich habe eine Frage an Sie: Warum muss ich das überschreiben der getView() und die getDropDownView()? Warum funktioniert es nicht wenn ich nur das überschreiben der getDropDownView()?
InformationsquelleAutor st0le
Versuchen Sie, kommentieren Sie die Zeile dataAdapter.setDropDownViewResource() und der adapter wird versuchen, die mycityow layout-Datei für die drop-down-als auch. Funktioniert in einfachen Fällen.
InformationsquelleAutor Akhil