Festlegen der Auswahl des Spinners nach Wert, nicht nach Position
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 bewältigen, 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:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
Legen Sie den Spinner-Adapter und DropDownViewResource fest:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
Als nächstes, wenn der zu vergleichende Wert (compareValue) nicht null ist:
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
Durch die Verwendung dieses Ansatzes kann die Spinner-Auswahl basierend auf dem in der Datenbank gespeicherten Wert genau festgelegt werden, wodurch ein nahtloses Benutzererlebnis bei Ansichtsaktualisierungen gewährleistet wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3