java - 向 Recyclerview 添加或删除项目会出现错误“指定的孩子已经有父母”。
问题描述
每当我尝试从 recyclerview 添加或删除项目时,都会弹出以下错误并且应用程序崩溃:
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Recyclerview 的代码
public class KeywordsAdapter extends RecyclerView.Adapter<KeywordsAdapter.ViewHolder> {
private ArrayList<String> keywords;
private Context context;
private int totalCount = 0;
private boolean isLoading = false;
public class ViewHolder extends RecyclerView.ViewHolder {
private Chip mChip;
private View view;
public ViewHolder(View itemView) {
super(itemView);
view = itemView;
mChip = itemView.findViewById(R.id.chip);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_keyword, parent, false);
final ViewHolder pvh = new ViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
final String keyword = keywords.get(position);
holder.mChip.setChipText(keyword);
holder.mChip.setOnCloseClickListener(new OnCloseClickListener() {
@Override
public void onCloseClick(View v) {
removeItem(holder.getAdapterPosition());
}
});
}
@Override
public int getItemCount() {
return keywords.size();
}
public KeywordsAdapter(Context c, ArrayList<String> keywords) {
this.keywords = keywords;
this.context = c;
}
}
添加项目的代码
public void addTo(String newDueItems) {
this.keywords.add(0, newDueItems);
notifyItemInserted(0);
}
删除项目的代码
public void removeItem(int position) {
this.keywords.remove(position);
notifyItemRemoved(position);
}
没有动态添加或删除视图。所有的添加和删除都是通过上述方法完成的。任何帮助将不胜感激!
解决方案
推荐阅读
- reactjs - 使用 cmd 通过 create-react-app 创建新应用程序以进行反应时发生错误
- angular - Angular 11、:enter 和 :leave 动画不适用于 *ngIf
- java - Spring Boot - 每个 pod 运行一个特定的后台作业
- c# - 当我输入实数时它可以工作,但是赢了我输入十进制数这个错误,我现在不知道为什么
- python - 如何在程序重新运行/Python期间停止重写日志数据
- node.js - Npm 认为我在 Windows 上?
- ios - matchedGeometryEffect 动画不流畅
- javascript - 尝试检查用户是否登录时的useEffect无限循环
- electron - 处理
- grafana - InfluxDB 和 NodeRED