2017-01-24 3 views
0

私は基本的なonItemSelectedリスナーが添付されたスピナーを持っています。今私が欲しいのは、複数の他のonItemSelected Listenerをこのスピンナーに追加して、それらのすべてを実行することです。それを実装する方法は?単一のスピナーに複数のonItemSelectedリスナー

+0

単一のものにすべてのあなたのItemSelectedListenersを結合します。 –

+0

はい、かなりまっすぐです。しかし、私はスピナーの中にスピナーを持っているスピナーに一種のラッパークラスを書いています。私はこのスピンナーを使って動的レイアウトを作成しています。ですから、onItemSelected Listener内の機能を動的に増やす方法が必要です。あなたが言及したこととは別の方法で他の方法。 – ArslanAnjum

答えて

2

は、これにあなたの他のリスナーを追加し、あなたのスピナーにリスナーとしてこれを設定します。

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...); 
     } 
    } 
} 
関連する問題