2016-11-05 5 views
0

활동, 활동에 RecyclerView가 있으며 getGroupList()에 의해 데이터를 가져옵니다. 이것은 비동기식 메소드입니다. ,RecyclerView 어댑터의 "notifyDataSetChanged()"가 호출되면 RecyclerView는 "java.lang.Throwable : addInArray"를 던집니다.

addInArray가 호출 된 : addInArray

의 Throwable 정보가

public void setData(List<UserGroupBean> data) { 
    this.data.clear(); 
    this.data.addAll(data); 
    notifyDataSetChanged(); 
} 
:

public void getSelectGroupList() { 
    getGroupList(getGroupList_listener); 
} 

private LogicTaskListener<UserGroupModel> getGroupList_listener = new  LogicTaskListener<UserGroupModel>() { 
     @Override 
     public void onResponse(UserGroupModel result) { 
      loadingFinish(); 
      if (result.code == KoalaHttpStatus.OK) { 
       mAdapter.setData(result.data.list); 
      } 
     } 
    }; 

이 어댑터 사항 setData 방법에 의한 업데이트 데이터가 호출 사항 setData()가 notifyDataSetChanged(), java.lang.Exception 상위를 던져 this = android.support.v7.widget.RecyclerView {4295f4f0 VFED .... .F .... ID 40,218-1240,780 # 7f0d00ca app : id/select_group_recyclerview} 호출 스택 = java.lang.Throwable : addInArray 로이드에서 android.view.ViewGroup.addView에서 android.view.ViewGroup.addViewInner (ViewGroup.java:3740) 에서 android.view.ViewGroup.addInArray (ViewGroup.java:3786) (ViewGroup.java:3564)에서 .view.ViewGroup.addView (ViewGroup.java:3509) android.support.v7.widget.RecyclerView $.android.support.v7.widget.ChildHelper.addView (ChildHelper. java : 107) android.support.v7.widget.RecyclerView $ LayoutManager.addViewInt (RecyclerView.java:7112) android.support.v7.widget.RecyclerView $ LayoutManager.addView (RecyclerView.java:7070)에서 at android.support.v7.widget.RecyclerView $ LayoutManage r.addView (RecyclerView.java:7058) android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1328) android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1377) android.support.v7.widget에서 android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3315) 에서 android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:578) 에서 . RecyclerView.dispatchLayout (RecyclerView.java:3124) android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:3568) at android.view.View.layout (View.java:15132) at android. 경쟁하다 w.ViewGroup.layout (ViewGroup.java:4862) android.widget.LinearLayout.setChildFrame (LinearLayout.java:1888)에서 android.widget.LinearLayout.layoutVertical (LinearLayout.java:1742)에서 android.widget에서 . LinearLayout.onLayout (LinearLayout.java:1651) android.view.View.layout (View.java:15132)에서 android.view.ViewGroup.layout (ViewGroup.java:4862)에서 android.widget.FrameLayout에서 . layoutChildren (FrameLayout.java:515) android.widget.FrameLayout.onLayout (FrameLayout.java:450) at android.view.View.layout (View.java:15132) android.view.ViewGroup.layout (ViewGroup.j AVA : 4862) android.widget.LinearLayout.setChildFrame (LinearLayout.java:1888) 에서 android.widget.LinearLayout.layoutVertical (LinearLayout.java:1742) android.widget.LinearLayout.onLayout에서 (LinearLayout.java에서 : 1651) android.view.View.layout (View.java:15132) at android.view.ViewGroup.layout (ViewGroup.java:4862) at android.widget.FrameLayout.layoutChildren (FrameLayout.java : 515) android.view.View.layout (View.java:15132)에서 android.widget.FrameLayout.onLayout (FrameLayout.java:450) android.view.ViewGroup.layout에서 (ViewGroup.java : 4862) android.widget.LinearLayout.setChildFrame (LinearLayout.java:1888) android.widget.LinearLayout.layoutVertical (LinearLayout.java:1742) android.widget.LinearLayout.onLayout에서 에서 (LinearLayout.java:1651에서 ) android.widget.FrameLayout.layoutChildren (FrameLayout.java:515)에서 android.view.ViewGroup.layout (ViewGroup.java:4862) 에서 android.view.View.layout (View.java:15132) 에서 android.view.ViewGroup.layout에서 android.view.View.layout (View.java:15132) 에서 android.widget.FrameLayout.onLayout (FrameLayout.java:450) (ViewGroup.java:4862) 에서 53,691,363,210에서 android.view.ViewRootImpl.performTraversals에서 android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2317) (ViewRootImpl.java:2023) android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1189)에서 로이드에서 . view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:6223) android.view.Choreographer $ CallbackRecord.run (0120)에서 android.view.Choreographer.doCallbacks (Choreographer.java:591) at android.view.Choreographer.doFrame (Choreographer.java:560) at android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:774) android.os.Handler.handleCallback (Handler.java:808) android.app.ActivityThread.main에서 android.os.Looper.loop (Looper.java:193) 에서 android.os.Handler.dispatchMessage (Handler.java:103) (ActivityThread.java:5292) 에서 에서 java.lang.reflect.Method.invokeNative (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.java:515) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.jav

+0

이 코드를하시기 바랍니다 보여 – Androider

+0

추가 코드와 예외 정보 – zyh408344432

답변

1

RecyclerView의 데이터가 변경되어 업데이트해야하는 경우 RecyclerView의 어댑터를 notifyDataSetChanged()에 사용하십시오.

mAdapter.notifyDataSetChanged(); 
+0

RecyclerView의 어댑터의 사항 setData() 메소드 – zyh408344432

관련 문제