java - 从一个回收器 View 中删除一项并将其添加到另一个回收器 View 中

标签 java android android-recyclerview

我有两个回收器 View ,我希望当我单击回收器 1 中的某个项目时,将其删除并将其添加到回收器 2 中。我尝试在适配器中执行此操作,但它返回 null。有人知道如何实现它吗? 更新1:

我的绑定(bind)方法:

   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));
                }

            }
        });
    }

主要 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:我的数组列表中有项目,它们不为空。

最佳答案

好吧,没有人再回答我了,我自己找到了解决方案: 我在适配器中添加了两个 Arraylist,并在适配器本身内交换了数据。

适配器:

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();
            }
        });
    }

关于java - 从一个回收器 View 中删除一项并将其添加到另一个回收器 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61498934/

相关文章:

java - GWT 项目和 Eclipse 链接资源

java - 使用android从web目录读取文件

android - 音视频Muxing问题

android - 处理 recyclerview 内部项目的点击

android - 如何将 Hashmap<String,List<Items>> 膨胀到 Recyclerview

java - Elasticsearch 1.2.1 异常 : Root type mapping not empty after parsing

java - 我不断收到 "OAuth consumer key/secret combination not supplied"错误消息

java - 如何为 Servlet 3.0 配置 Spring Boot 1.2.0 并让 m2e 将 Eclipse Facet 设置为 3.0?

java - 接口(interface)列表器

java - 如何与 AlertDialog 内的适配器内的适配器内的 fragment 内的 AlertDialog View 进行交互?