java - 当我删除一个项目时,回收站查看列表修改所有项目

标签 java android json list android-recyclerview

我在我的应用中插入了一个 Recycler View 来创建一个购物篮列表。

现在我有两个问题。当我将 mUsers 列表复制到 JSON 时,列表中的所有项目都会复制最后一项的值(例如,如果我有一个列表 = [1,2,3,4],当我将它复制到 Json 时,它会转换为 [ 4,4,4,4]).

在我的 Recycler View 中,项目显示正确,但是当我从列表中删除一个项目时,它会转换它下面的列表(例如,如果我有一个列表 [1,2,3,4] 并删除 2,列表在 [1,3,3] 中变换。

这是我的 RecyclerView 代码:

public class LineAdapter extends RecyclerView.Adapter<LineHolder> {

    private final List<Option> mUsers;

    public LineAdapter(ArrayList users) {
        mUsers = users;
    }

    @Override
    public LineHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return new LineHolder(LayoutInflater.from(parent.getContext())
                .inflate(R.layout.main_line_view, parent, false));
    }

    @Override
    public void onBindViewHolder(LineHolder holder, final int position) {
        holder.title.setText(String.format(Locale.getDefault(), "%s",
                mUsers.get(position).getNome().label
        ));
        holder.subtitle.setText(String.format(Locale.getDefault(), "Detalhes: %s",
                mUsers.get(position).getDados()
        ));
        lista.add(mUsers.get(position));

        holder.deleteButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                removerItem(position);
            }
        });
    }

    @Override
    public int getItemCount() {
        return mUsers != null ? mUsers.size() : 0;
    }

    public List<Option> getList(){
        return mUsers;
    }

    public void updateList(Option user) {
        insertItem(user);
    }

    private void insertItem(Option user) {
        mUsers.add(user);
        notifyItemInserted(getItemCount());
    }

    private void removerItem(int position) {
        mUsers.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, mUsers.size());
    }
}

最佳答案

解开了谜团,代码可以运行了。问题是当我插入列表时,我每次都使用同一个对象(我只更新了它),所以每个位置上的指针都指向同一个对象。

关于java - 当我删除一个项目时,回收站查看列表修改所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59070628/

相关文章:

java - 如何使用 R 或任何其他编程语言估计两种不同分布的混合参数?

java - api低于26的设备如何使用base 64?

java - 在 REST 客户端中反序列化 JsonObject

java - Servlet 中的线程安全和排队任务

java - Instagram API 分页 : Next page

java - Android:新线程可运行在主线程中执行

ios - 如何提取JSON数组?

java - Jersey MOXy JSON 不区分大小写的解码

java - Eclipse 调试 : while continue after return statement?

java - MockWebServer 的 takeRequest() 方法需要很长时间才能响应或挂起