[英]How to use ItemTouchHelper.SimpleCallback with ViewPager2?
[英]How to pass data from adapter to fragment using ItemTouchHelper.SimpleCallback
我有一个RecyclerView
来显示我的数据,我有一个ItemTouchHelper
可以滑动以删除我的数据。 这一切都很好,但我要做的是从适配器传递一个变量,以便在片段中ItemTouchHelper.SimpleCallbac
的onSwiped
方法中使用它。 任何想法?
我正在使用 Paging 3 库来显示我的数据。
这是我尝试过的:
ItemTouchHelperSwipe
class ItemTouchHelperSwipe(private val swipeItemTouchListener: SwipeItemTouchListener): ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.LEFT){
override fun onSwiped(viewHolder:RecyclerView.ViewHolder,direction:Int) {
swipeItemTouchListener.onSwiped(viewHolder,direction)
}
//More overrided method...
}
SwipeItemTouchListener 接口:
interface SwipeItemTouchListener{
fun onSwiped(holder:RecyclerView.ViewHolder?,direction:Int)
//More functions...
}
分段
class MyFragment : Fragment(),SwipeItemTouchListener{
override fun onSwiped(holder:RecyclerView.ViewHolder?,direction:Int?){
//Here is where I want to use the variable from adapter
}
}
适配器(使用 Paging 3 库中的 PagingDataAdapter)
class MyAdapter : PagingDataAdapter<MyModel, RecyclerView.ViewHolder>(ModelComparator){
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int){
val mymodel : MyModel? = getItem(position)
val mymodelID = mymodel.data.id //This id is what I want to pass to fragment
}
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
val position = viewHolder.adapterPosition
val item = yourAdapter.currentList[position]
// use your item id
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.