我将此监听器放在多个 swipelistview 上
BaseSwipeListViewListener myBaseSwipeListViewListener = new BaseSwipeListViewListener() {
@Override
public void onOpened(int position, boolean toRight) {
//Here I need the calling swipelistview
}
}
与
swipelistview0.setSwipeListViewListener(myBaseSwipeListViewListener);
swipelistview1.setSwipeListViewListener(myBaseSwipeListViewListener);
swipelistview2.setSwipeListViewListener(myBaseSwipeListViewListener); //and so on
如何获得调用的 swipelistview ?
最佳答案
好吧,我不确定我是否明白你的意思,但是如果向你的监听器回调方法添加另一个参数呢?像这样:
BaseSwipeListViewListener myBaseSwipeListViewListener = new BaseSwipeListViewListener(){
@Override
public void onOpened(int position, boolean toRight, SwipeListView swipeListView) {
//Here you now have your calling swipelistview
}
}
在您的 BaseSwipeListViewListener 中,现在只需通过返回自身(this)来添加第三个参数。
更新:我不知道它是一个图书馆。这不是我会做的,但如果您不想编辑源代码,只需执行以下操作:
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);
关于java - 获取引发监听器的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25450877/