Get the object that raises the listener

I put this listener on several swipelistview

BaseSwipeListViewListener myBaseSwipeListViewListener = new BaseSwipeListViewListener() {
            @Override
            public void onOpened(int position, boolean toRight) {
            //Here I need the calling swipelistview
            }
}

with

swipelistview0.setSwipeListViewListener(myBaseSwipeListViewListener);
swipelistview1.setSwipeListViewListener(myBaseSwipeListViewListener);
swipelistview2.setSwipeListViewListener(myBaseSwipeListViewListener); //and so on

How could I get the calling swipelistview ?

Upvotes: 0

Views: 87

Answers (1)

Julian Pieles
Julian Pieles

Reputation: 4016

Well I am not sure if I got you but what about just adding another parameter to your listener callback method? Like this:

BaseSwipeListViewListener myBaseSwipeListViewListener = new BaseSwipeListViewListener(){
    @Override
    public void onOpened(int position, boolean toRight, SwipeListView swipeListView) {
        //Here you now have your calling swipelistview
    } 
}

In your BaseSwipeListViewListener now just add the third parameter by returning itself (this).

Update: I did not know that it is a library. This is not what I would do but if you don't want to edit the source just do the following:

BaseSwipeListViewListener myBaseSwipeListViewListener0 = new BaseSwipeListViewListener() {
    @Override
    public void onOpened(int position, boolean toRight) {
        onOpenedAdvanced(position, toRight, swipelistview0);
    } 
}

BaseSwipeListViewListener myBaseSwipeListViewListener1 = new BaseSwipeListViewListener() {
    @Override
    public void onOpened(int position, boolean toRight) {
        onOpenedAdvanced(position, toRight, swipelistview1);
    } 
}

BaseSwipeListViewListener myBaseSwipeListViewListener2 = new BaseSwipeListViewListener() {
    @Override
    public void onOpened(int position, boolean toRight) {
        onOpenedAdvanced(position, toRight, swipelistview0);
    } 
}

public void onOpenedAdvanced(int position, boolean toRight, SwipeListView swipeListView){
    //Here you now have your calling swipelistview
}

swipelistview0.setSwipeListViewListener(myBaseSwipeListViewListener0);
swipelistview1.setSwipeListViewListener(myBaseSwipeListViewListener1);
swipelistview2.setSwipeListViewListener(myBaseSwipeListViewListener2); 

Upvotes: 1

Related Questions