Wenn Sie einen echten onChangedListener() wünschen. Speichern Sie den Anfangswert im Handler und prüfen Sie, ob er sich geändert hat. Es ist einfach und macht no erfordern eine globale Variable. Funktioniert, wenn Sie mehr als einen Spinner auf der Seite haben.
String initialValue = // get from Database or your object
mySpinner.setOnItemSelectedListener(new SpinnerSelectedListener(initialValue));
...
protected class SpinnerSelectedListener implements AdapterView.OnItemSelectedListener {
private SpinnerSelectedListener() {
super();
}
public SpinnerSelectedListener(String initialValue) {
this();
this.initialValue = initialValue;
}
private String initialValue;
// getter and setter removed.
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
final String newValue = (String) spinHeight.getItemAtPosition(position);
if (newValue.equals(initialValue) == false) {
// Add your code here. The spinner has changed value.
// Maybe useful.
// initialValue = newValue;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// Maybe useful.
// initialValue = null;
}
}
Objekte sind dein Freund, benutze sie.
0 Stimmen
Ich habe diese Antworten ausprobiert, aber keine war hilfreich. Sobald Spinner Komponente unterstützt nicht Element klicken Ereignisse. Spinner Dokumentation