Spinner-Auswahl nach Wert und nicht nach Position festlegen
Beim Aktualisieren einer Ansicht muss die Auswahl des Spinners mit einem in der Datenbank gespeicherten Wert übereinstimmen Der herkömmliche Ansatz besteht darin, die entsprechende Position mithilfe einer indexOf-Methode auf dem Adapter zu lokalisieren. Dieser Ansatz stößt jedoch auf ein Hindernis, da der Adapter eine solche Methode nicht bereitstellt.
Um diese Herausforderung zu meistern, ist die Verwendung der getPosition-Methode des ArrayAdapters ein geeigneterer Ansatz. In Kombination mit einem geeigneten ArrayAdapter ermöglicht diese Methode die Identifizierung der Position, die einem bestimmten Wert zugeordnet ist.
Stellen Sie sich ein Szenario vor, in dem der Spinner namens mSpinner einen Wert von „irgendeinem Wert“ enthält. Um seine Position zu lokalisieren und zu vergleichen, führen Sie die folgenden Schritte aus:
Erstellen Sie einen ArrayAdapter aus der Ressourcendatei R.array.select_state:
<code class="java">ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);</code>
Legen Sie den Adapter und die DropDownViewResource des Spinners fest:
<code class="java">adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSpinner.setAdapter(adapter);</code>
Als nächstes, wenn der zu vergleichende Wert (compareValue) nicht null ist:
<code class="java">if (compareValue != null) { int spinnerPosition = adapter.getPosition(compareValue); mSpinner.setSelection(spinnerPosition); }</code>
Mit diesem Ansatz kann die Spinner-Auswahl basierend auf dem in der Datenbank gespeicherten Wert genau festgelegt werden. Bereitstellung einer nahtlosen Benutzererfahrung bei Ansichtsaktualisierungen.
Das obige ist der detaillierte Inhalt vonWie lege ich die Auswahl eines Spinners nach Wert und nicht nach Position in Android fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!