【发布时间】:2019-11-27 12:48:39
【问题描述】:
我在我的应用中插入了一个 Recycler 视图来制作购物篮清单。
现在我有两个问题。当我将我的 mUsers 列表复制到 JSON 时,列表中的所有项目都会复制最后一项的值(例如,如果我有一个列表 = [1,2,3,4] 当我将它复制到 Json 时它会转换为 [ 4,4,4,4])。
在我的回收站视图中,项目显示正确,但是当我从列表中删除一个项目时,它会转换它下面的列表(例如,如果我有一个列表 [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 android json list android-recyclerview