Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Snackbar的RecyclerView.Adapter中获取视图?_Android_Android Recyclerview - Fatal编程技术网

Android 如何在Snackbar的RecyclerView.Adapter中获取视图?

Android 如何在Snackbar的RecyclerView.Adapter中获取视图?,android,android-recyclerview,Android,Android Recyclerview,借助于此,我正在实现刷卡并拖动回收视图。删除项目时,我想显示一个SnackBar,但显示SnackBar需要查看。我不知道如何在RecyclerAdapter的函数中获取视图 我的代码: public void onItemDismiss(int position) { notes.remove(position); notifyItemRemoved(position); /* Show SnackBar */ } 编辑:我的问题与你的

借助于此,我正在实现刷卡并拖动
回收视图
。删除项目时,我想显示一个
SnackBar
,但显示
SnackBar
需要查看。我不知道如何在
RecyclerAdapter
的函数中获取
视图

我的代码:

public void onItemDismiss(int position) {
        notes.remove(position);
        notifyItemRemoved(position);
        /* Show SnackBar */
    }

编辑:我的问题与你的不同。我在实现SwipetoDismiss方面没有任何问题。我已经成功地实现了它。但我想显示一个SnackBar,这样就可以对用户进行notified和Undo。我在显示SnackBar时遇到问题,而不是在实现onsweep()时

修改您的方法,并将
RecyclerView
作为参数传递,以便获得视图

public void onItemDismiss(int position,RecyclerView rv) {
        notes.remove(position);
        notifyItemRemoved(position);
        /* Show SnackBar */
        Snackbar.make(rv, R.string.snackbar_text, Snackbar.LENGTH_LONG).show(); 
    }

编辑

private final ItemTouchHelperAdapter mAdapter;
private final RecyclerView rv;
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter adapter,RecyclerView rv) {
    mAdapter = adapter;
    this.rv=rv;
}
然后通过

 @Override
    public void onSwiped(ViewHolder viewHolder, int direction) {
        mAdapter.onItemDismiss(viewHolder.getAdapterPosition(),rv);
    }

显示ItemTouchHelper中的“SimpleItemTouchHelperCallback”上的“OnSweep”方法出错。ItemTouchHelper中的MDismiss(int,RecyclerView)无法应用于OnSweep()中的(int)。ViewHolder作为参数传递。有没有办法通过ViewHolder获取视图?您能在调用
onsweep()
的地方发布代码吗?您必须将位置和rv作为参数传递给我,我在SimpleItemTouchHelperCallback中调用它。你可以在文章中看到。我的实现是相同的。创建一个接口以传入视图+整数,通过在活动或片段中实现将其用作回调。我已修改了通过RecyclerAdapter实现的接口。但对于回调,只能使用ItemTouchHelper.callback。要执行Swipe,我们必须在这个回调中重写onSwiped方法,请看我的工作示例。可能的重复项与这个问题@JaredBurrows无关