RecyclerView ItemTouch Listener 每次都会被调用

RecyclerView ItemTouch Listener gets called everytime

我在具有 SwipeRefreshLayout 的布局中实现了 RecyclerView。我找到 RecyclerView,设置它的适配器,并在一个方法中调用 addOnItemTouchListener()。每次刷新 SwipeRefreshLayout 时都会调用此方法。
在 Touch Listener 中,会调用并显示 AlertDialog
每次我在 SwipeRefreshLayout 中刷新时,它似乎都在添加一个 Touch Listener。最终发生的是 AlertDialog 现在显示不止一次,具体取决于您刷新的次数。
我怎样才能解决这个问题,即使它被刷新,对话框也只显示一次?:

private void initRecyclerView() {
    RecyclerView ticketRecyclerView = (RecyclerView) findViewById(R.id.recycler_tickets);
    ticketsAdapter = new TicketsAdapter(this);
    ticketRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    ticketRecyclerView.setAdapter(ticketsAdapter);
    ticketRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, ticketRecyclerView, new ClickListener() {
}
}

每次刷新,都会添加一个OnItemTouchListener。这不会替换之前添加的侦听器;它只是增加了它们。

要更正此问题,您将不得不在刷新时不添加额外的触摸侦听器,或者 remove the last one

removeOnItemTouchListener

void removeOnItemTouchListener (RecyclerView.OnItemTouchListener listener)

Remove an RecyclerView.OnItemTouchListener. It will no longer be able to intercept touch events.