Android | 指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

跳舞跳舞

我有以下适配器:

@Override
public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
    super.onViewAttachedToWindow(holder);
    holder.itemView.setEnabled(mAllowClicks);
    holder.itemView.setClickable(mAllowClicks);
}

@Override
public RealmViewHolder onCreateRealmViewHolder(ViewGroup viewGroup, int i) {
    View v = inflater.inflate(R.layout.item_list_layout, viewGroup, false);
    myViewHolder vh = new myViewHolder(v);

    return vh;
}

当我运行我的应用程序时,出现以下错误:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    at android.view.ViewGroup.addViewInner(ViewGroup.java:3883)
    at android.view.ViewGroup.addView(ViewGroup.java:3736)
    at android.view.ViewGroup.addView(ViewGroup.java:3681)
    at android.support.v7.widget.RecyclerView$5.addView(RecyclerView.java:638)
    at android.support.v7.widget.ChildHelper.addView(ChildHelper.java:107)
    at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:7054)
    at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7012)
    at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7000)
    at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1428)
    at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1377)
    at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1193)
    at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1043)
    at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:4357)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
    at android.view.Choreographer.doCallbacks(Choreographer.java:580)
    at android.view.Choreographer.doFrame(Choreographer.java:549)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5349)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

我正在使用RealmRecyclerAdapter,有人知道发生了什么吗?

谢谢!!

我正在向适配器添加项目,如下所示:

mList = mRealm.where(RealmItem.class).findAll();
mAdapter.UpdateList(mList);

这是UpdateList函数:

    public void UpdateList(RealmResults<RealmItem> newList) {
    super.updateRealmResults(newList);
    mList= newList;
}
穆罕默德·里法特

当一个项目两次添加到适配器时,会发生此问题,因此,当它第二次添加时,它检测到它已经有一个父项,并且不能有多个父项,因此会产生错误。

要解决此问题,您必须在每次将列表添加到适配器中时首先创建列表的新实例(或添加的任何视图),或者至少为添加的每个视图创建一个新变量。

关于该方法updateRealmResults,如Realm文档中所述,现在已弃用,必须将其替换为带有以下签名的方法updateDate

public void updateData(OrderedRealmCollection<T> data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android | 指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

来自分类Dev

Android片段-指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

来自分类Dev

冲突的Android错误消息:指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()”

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

来自分类Dev

表格行指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

来自分类Dev

错误:指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

来自分类Dev

表格行指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

来自分类Dev

对话框-指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

来自分类Dev

指定的孩子已经有一个父母。您必须先对孩子的父母调用removeView()

来自分类Dev

Android:视图-孩子已经有一个父母

来自分类Dev

Logcat说:“指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。” 在我的第二个警报对话框中

来自分类Dev

Logcat说:“指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。” 在我的第二个警报对话框中

来自分类Dev

Android:您必须先在孩子的父级上调用removeView()2

来自分类Dev

活动:您必须先在孩子的父母上调用 removeView()

来自分类Dev

自定义对话框-您必须先在孩子的父母上调用removeView()

来自分类Dev

自定义对话框-您必须先在孩子的父母上调用removeView()

来自分类Dev

您必须先使用AlertView在孩子的父母上调用removeView()

来自分类Dev

Android:无法加载标签页。说孩子已经有父母了

来自分类Dev

java.lang.IllegalStateException:指定的子代已经有一个父代。您必须首先在子级的父级上调用removeView()[用于表]

来自分类Dev

java.lang.IllegalStateException:指定的子代已经有一个父代。您必须首先在子级的父级上调用removeView()[用于表]

来自分类Dev

自定义对话框-指定的孩子已经有一个父母

来自分类Dev

“指定的孩子已经有一个父母”如何从AlertDialog中删除视图

来自分类Dev

为什么我得到java.lang.IllegalStateException:指定的孩子已经有一个父母

来自分类Dev

Java.lang.Illegal State Exception: 特定的孩子已经有一个父母

来自分类Dev

Android IllegalStateException:指定的子代已经有一个父代

来自分类Dev

选择一个父母和所有给定父母或孩子ID的孩子

Related 相关文章

  1. 1

    Android | 指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

  2. 2

    Android片段-指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

  3. 3

    冲突的Android错误消息:指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

  4. 4

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

  5. 5

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()”

  6. 6

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

  7. 7

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

  8. 8

    表格行指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

  9. 9

    错误:指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

  10. 10

    表格行指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

  11. 11

    对话框-指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()

  12. 12

    指定的孩子已经有一个父母。您必须先对孩子的父母调用removeView()

  13. 13

    Android:视图-孩子已经有一个父母

  14. 14

    Logcat说:“指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。” 在我的第二个警报对话框中

  15. 15

    Logcat说:“指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。” 在我的第二个警报对话框中

  16. 16

    Android:您必须先在孩子的父级上调用removeView()2

  17. 17

    活动:您必须先在孩子的父母上调用 removeView()

  18. 18

    自定义对话框-您必须先在孩子的父母上调用removeView()

  19. 19

    自定义对话框-您必须先在孩子的父母上调用removeView()

  20. 20

    您必须先使用AlertView在孩子的父母上调用removeView()

  21. 21

    Android:无法加载标签页。说孩子已经有父母了

  22. 22

    java.lang.IllegalStateException:指定的子代已经有一个父代。您必须首先在子级的父级上调用removeView()[用于表]

  23. 23

    java.lang.IllegalStateException:指定的子代已经有一个父代。您必须首先在子级的父级上调用removeView()[用于表]

  24. 24

    自定义对话框-指定的孩子已经有一个父母

  25. 25

    “指定的孩子已经有一个父母”如何从AlertDialog中删除视图

  26. 26

    为什么我得到java.lang.IllegalStateException:指定的孩子已经有一个父母

  27. 27

    Java.lang.Illegal State Exception: 特定的孩子已经有一个父母

  28. 28

    Android IllegalStateException:指定的子代已经有一个父代

  29. 29

    选择一个父母和所有给定父母或孩子ID的孩子

热门标签

归档