Android 从RecyclerView中删除项目并将其添加到同一活动中的第二个RecyclerView
这是我的问题 我在同一活动中有两个RecyclerViews。第一个(RecView1)当然有一个适配器,第二个(RecView2)有不同的适配器 我想:Android 从RecyclerView中删除项目并将其添加到同一活动中的第二个RecyclerView,android,android-recyclerview,Android,Android Recyclerview,这是我的问题 我在同一活动中有两个RecyclerViews。第一个(RecView1)当然有一个适配器,第二个(RecView2)有不同的适配器 我想: 单击RecView1中卡的按钮,该卡将从列表中删除,并显示在RecView2中 我做了一件非常糟糕的事我想: 在RecView1适配器中: public LSAdapterBottom(List<ListaInfo> sList,List<ListaInfo> lSMain, LSActivity lSAc
- 单击RecView1中卡的按钮,该卡将从列表中删除,并显示在RecView2中李>
public LSAdapterBottom(List<ListaInfo> sList,List<ListaInfo> lSMain, LSActivity lSActivity) {
this.sList = sList;//list of the current adapter
this.lSMain = lSMain; //second list where I want to put the item here deleted
this.lSActivity = lSActivity; //activity which has the two recview
}
public void onBindViewHolder(LSViewBottomHolder cViewHolder, final int i) {
final Item item = sList.get(i);
cViewHolder.ics.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lSMain.add(item);
lSActivity.notifyRitornoInLista(); //public method of the activity which simply calls the other adapter to invoke the notifyDataSetChanged() to update the other recview.
sList.remove(i);
notifyDataSetChanged();
}
});
public LSAdapterBottom(列表sList、列表lSMain、LSActivity-LSActivity){
this.sList=sList;//当前适配器的列表
this.lSMain=lSMain;//要将项目放在此处的第二个列表已删除
this.lSActivity=lSActivity;//具有两个recview的活动
}
BindViewHolder上的公共无效(LSViewBottomHolder cViewHolder,最终int i){
最终项目=sList.get(i);
cViewHolder.ics.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
lSMain.add(项目);
lSActivity.notifyRitornoInLista();//该活动的公共方法,它只调用另一个适配器来调用notifyDataSetChanged()来更新另一个recview。
滑动。移除(i);
notifyDataSetChanged();
}
});
我认为这确实是一个肮脏的解决方案,但它正在发挥作用。我想知道一种更干净的方法来达到同样的效果。
提前谢谢。只是一个想法,使用接口而不是公共方法。当在RV1上单击事件通过侦听器删除项目时,它将收到活动通知,然后该项目将添加到RV2上。然后刷新视图。好的。但是您认为将listActivity传递给适配器是一个好主意吗?我想传递项目(将从RV1中删除)通过接口从适配器(RV1的)中删除,以在活动中接收(其中RV1、RV2初始化),然后在RV2上添加该项。