2016-11-05 12 views
0

アクティビティ、アクティビティにRecyclerViewがあり、getGroupList()によってデータを取得します。RecyclerViewアダプタの "notifyDataSetChanged()"が呼び出されたとき、RecyclerViewは "java.lang.Throwable:addInArray"をスローします

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.Throwableのを投げる:addInArray

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

のThrowable情報:

addInArrayは、呼び出され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.addInArray(ViewGroup.java:3786) とandroid.view.ViewGroup.addViewInner(ViewGroup.java:3740) at android.view.ViewGroup.addView(ViewGroup.java:3564) でandroid .View.ViewGroup.addView(ViewGroup.java:3509)android.support.v7.widget.RecyclerView $ .addView(RecyclerView.java:649) の は、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:1428) 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)で android.view.View.layout(View.java:15132)で アンドロイドで 。争うwViewGroup.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)) (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.onLayoutでandroid.widget.LinearLayout.layoutVertical(LinearLayout.java:1742) (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.widget.FrameLayout.onLayout(FrameLayout.java:450) android.view.View.layout(View.java:15132) at 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.widget.FrameLayout.onLayout(FrameLayout.java:450) android.view.View.layout(View.java:15132) android.view.ViewGroup.layout(ViewGroup.java:4862) at 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(Choreographer.java:788) android.view.Choreographer.doCallbacks(Choreographer.java:591)01 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のデータが変更され、更新が必要な場合は、NotifyDataSetChanged()にRecyclerViewのアダプタを使用してください。

mAdapter.notifyDataSetChanged(); 
+0

にRecyclerViewのアダプタでのsetData()メソッドを追加してください – zyh408344432

関連する問題