I have two recyclerviews and I want when I clicked on an item in recycler 1, remove it and add it in recycler 2. I tried to do this in the adapter but it returned null. anyone knows how to make it happen? Update 1:
my bind method:
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
holder.title.setText(tasks.get(position).getTitle());
holder.description.setText(tasks.get(position).getDescription());
if(!tasks.get(position).getActive())
holder.checkBox.setChecked(true);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
holder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!holder.checkBox.isChecked()){
mainActivity.finishedItems.add(tasks.get(position));
mainActivity.items.remove(tasks.get(position));
}
else if(holder.checkBox.isChecked()){
mainActivity.items.add(tasks.get(position));
mainActivity.finishedItems.remove(tasks.get(position));
}
}
});
}
main activity:
public ArrayList<TaskModel> items;
public ArrayList<TaskModel> finishedItems;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
items = new ArrayList<>();
finishedItems = new ArrayList<>();
RecyclerViewAdapter RecyclerViewAdapter = new RecyclerViewAdapter(this,items);
listView.setLayoutManager(new LinearLayoutManager(this));
listView.setAdapter(RecyclerViewAdapter);
ps: I have items in my arraylists, they're not empty.
well, nobody answered me again and I found the solution myself: I added both Arraylists in the adapter and exchanged datas within the adapter itself.
adapter:
public class RecyclerViewAdapter extends RecyclerView.Adapter<ViewHolder> {
private ArrayList<TaskModel> tasks;
private ArrayList<TaskModel> tasks2;
private Context context;
public RecyclerViewAdapter(Context context, ArrayList<TaskModel> list1, ArrayList<TaskModel> list2){
tasks = list1;
tasks2 = list2;
this.context = context;
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
holder.title.setText(tasks.get(position).getTitle());
holder.description.setText(tasks.get(position).getDescription());
holder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tasks2.add(tasks.get(position));
tasks.remove(position);
MainActivity.listView.getAdapter().notifyDataSetChanged();
MainActivity.finishedListView.getAdapter().notifyDataSetChanged();
}
});
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.