Java 向Recyclerview添加或删除项目时出现错误“;指定的子项已具有父项。”;
每当我尝试从recyclerview添加或删除项目时,都会弹出以下错误,应用程序会崩溃:Java 向Recyclerview添加或删除项目时出现错误“;指定的子项已具有父项。”;,java,android,arraylist,android-recyclerview,Java,Android,Arraylist,Android 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&
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 removeItem(int position) {
this.keywords.remove(position);
notifyItemRemoved(position);
}
不会动态添加或删除任何视图。所有添加和删除均通过上述方法完成。任何帮助都将不胜感激 您能用与适配器相关的代码更新您的问题吗?还有,
关键字的类型是什么?@Sagar更新了原始问题调用addTo()时有问题吗?需要更多信息。能否为onBindViewHolder
添加代码我认为您是在动态添加视图,此问题与动态添加视图有关。发布动态视图的相关代码
public void removeItem(int position) {
this.keywords.remove(position);
notifyItemRemoved(position);
}