Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Bill the Lizard
Verwenden Sie dieses android.R.layout.simple_spinner_dropdown_item anstelle dieses android.R.layout.simple_spinner_item, es sieht viel besser aus
sai Gorantla
Was ist array_spinner? Der Name des Arrays lautet arraySpinner. ist es ein Rechtschreibfehler oder muss es nur so sein>
SurajS
1
Erwägen Sie das Hinzufügen adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);(vorher s.setAdapter(adapter);, damit das Dropdown besser aussieht.
Ban-Geoengineering
1
@ StephenphenM änderte den Link
Pankajagarwal
99
Ich habe eine andere Option gefunden: die Spinner-Definition in der Layout-Datei
Ich habe alle oben genannten Methoden und einige andere Tutorials ausprobiert, aber dies ist die einzige, die für mich funktioniert hat. Ich danke dir sehr!
Um Elemente in Spinner hinzuzufügen, können Sie eine Sache tun, versuchen, einen Adapter zu erstellen und dann Elemente zum Adapter hinzuzufügen / daraus zu entfernen. Anschließend können Sie diesen Adapter mithilfe der setAdapter()Methode einfach an Spinner binden .
Danke für deine Antwort, ich habe die Lösung auch jetzt habe ich ein Problem damit.
Ich möchte das ausgewählte Element des Spinners abrufen, dh seine Position, da ich es weiter an eine andere Methode übergeben möchte. Sehen Sie, was ich getan habe ... dataspin.setOnItemSelectedListener (new myitemlistener ());
Dataspin ist mein Spinner-Objekt
@Override public void onItemSelected (AdapterView <?> Parent, Ansichtsansicht, int-Position, lange ID) {// TODO Automatisch generierter Methodenstub String p = parent.getItemAtPosition (position) .toString (); int pos = (int) parent.getItemIdAtPosition (position); System.out.println ("Position des Spinners ..." + pos); setSearchView (pos); }
Wenn ich dies tue, wird der Spinner-Artikel nicht angezeigt
aber wie bekommt man dann den ausgewählten Artikel?
Demotiviert am
1
Erster TypeCast in der Java-Datei. Verwenden Sie dann Spinner Spinner; spinner = findViewById (R.id.spinner); spinner.setOnItemClickListener (neuer AdapterView.OnItemClickListener () {@Override public void onItemClick (AdapterView <?> übergeordnet, Ansichtsansicht, int-Position, lange ID) {}});
ZIA ANSARI
5
Dieser Code liest im Grunde ein JSON-Array-Objekt und konvertiert jede Zeile in eine Option im Drehfeld, die als Parameter übergeben wird:
publicArrayAdapter<String> getArrayAdapterFromArrayListForSpinner(ArrayList<JSONObject> aArrayList,String aField){ArrayAdapter<String> aArrayAdapter =newArrayAdapter<String>(context, android.R.layout.simple_spinner_item);
aArrayAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);//android.R.layout.simple_spinner_dropdown_itemtry{for(int i =0; i < aArrayList.size(); i++){
aArrayAdapter.add(aArrayList.get(i).getString(aField));}}catch(JSONException e){
e.printStackTrace();ShowMessage("Error while reading the JSON list");}return aArrayAdapter;}
Antworten:
XML-Datei:
Java-Datei:
Siehe Spinner-Beispiel .
quelle
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
(vorhers.setAdapter(adapter);
, damit das Dropdown besser aussieht.Ich habe eine andere Option gefunden: die Spinner-Definition in der Layout-Datei
Elementdefinition in der Datei array.xml:
Link zur vollständigen Quelle des Codes
quelle
Versuchen Sie diesen Code:
Sie können den Wert des Spinner-Elements auch über die XML-Datei des String-Arrays hinzufügen.
In mainActivity.java:
quelle
Um Elemente in Spinner hinzuzufügen, können Sie eine Sache tun, versuchen, einen Adapter zu erstellen und dann Elemente zum Adapter hinzuzufügen / daraus zu entfernen. Anschließend können Sie diesen Adapter mithilfe der
setAdapter()
Methode einfach an Spinner binden .Hier ist ein Beispiel:
quelle
In Ihrem Layout:
quelle
Dieser Code liest im Grunde ein JSON-Array-Objekt und konvertiert jede Zeile in eine Option im Drehfeld, die als Parameter übergeben wird:
quelle
Fügen Sie dem XML-Layout einen Drehfeld hinzu und fügen Sie diesen Code dann der Java-Datei hinzu:
quelle
Fügen Sie diesen Code nach dem Aktualisieren der Liste hinzu
Annehmen:
Der Variablenname ArrayAdapter <String> lautet dataAdapter , und der Variablenname List lautet key .
quelle
Um Spinner um einen weiteren Gegenstand zu erweitern , können Sie:
quelle
Es geht nur darum, den Adapter zu löschen, alle Elemente hinzuzufügen und Änderungen wie unten zu melden:
quelle
Eine einfachere Möglichkeit ist die Verwendung der Material-Spinner-Bibliothek: https://github.com/jaredrummler/MaterialSpinner
Fügen Sie zuerst Ihrem Projekt hinzu:
und verwenden Sie wie folgt:
und Java-Code, mit dem Sie so einfach Elemente in Java hinzufügen können:
quelle