2017-01-24 2 views
0

Ich habe ein Spinner, der einen grundlegenden onItemSelected Listener hat. Nun, was ich will ist, mehrere andere OnItemSelected Listeners zu diesem Spinner hinzufügen und ich möchte alle von ihnen ausführen. Wie man es umsetzt?Mehrere onItemSelected Listener auf einem einzelnen Spinner

+0

alle ItemSelectedListeners zu einem einzigen kombinieren. –

+0

ja, das ist ziemlich einfach. aber ich habe eine Art Wrapper-Klasse auf Spinner geschrieben, die einen Spinner in sich hat. Ich verwende diesen Spinner, um ein dynamisches Layout zu erstellen. Also brauche ich eine Möglichkeit, die Funktionalität in onItemSelected Listener dynamisch zu erhöhen. jede andere Art zu tun, abgesehen von dem, was du erwähnt hast. – ArslanAnjum

Antwort

2

Set dies als Zuhörer auf Ihre Spinner, dann andere Zuhörer hinzufügen:

class ItemSelectedMultiListener implements OnItemSelectedListener { 

    private List<OnItemSelectedListener> mListeners = new ArrayList<>(); 

    public void addListener(OnItemSelectedListener listener) { 
     mListeners.add(listener); 
    } 

    public void removeListener(OnItemSelectedListener listener) { 
     mListeners.remove(listener); 
    } 

    @Override 
    public void onItemSelected(...args...) { 
     for (OnItemSelectedListener listener : mListeners) { 
      listener.onItemSelected(...args...); 
     } 
    } 

    @Override 
    public void onNothingSelected(...args...) { 
     for (OnItemSelectedListener listener : mListeners) { 
      listener.onNothingSelected(...args...); 
     } 
    } 
} 
Verwandte Themen