質問編集履歴

2

修正

2019/08/20 16:28

投稿

jun74
jun74

スコア338

test CHANGED
@@ -1 +1 @@
1
- Collections.sort(AlarmList)後にRecyclerViewを再描画する方法
1
+ RecyclerView.AdapterのonBindViewHolder内でnotifyDataSetChangedに対するエラーの回避策について
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- Collections.sort(AlarmList)後にRecyclerViewを再描画する方法が知りたいです。
5
+ RecyclerView.AdapterのonBindViewHolder内でnotifyDataSetChangedに対するエラーの回避策について知りたいです。
6
6
 
7
7
  Collections.sort(AlarmList)で、RecyclerViewに設定するArrayListの並び順がスイッチを押されることで変わることは確認しました。
8
8
 

1

修正

2019/08/20 16:28

投稿

jun74
jun74

スコア338

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,41 @@
6
6
 
7
7
  Collections.sort(AlarmList)で、RecyclerViewに設定するArrayListの並び順がスイッチを押されることで変わることは確認しました。
8
8
 
9
- その後、RecyclerViewを再描画するコマンド分かりせん
9
+ その後、リサイクルビュー更新「notifyDataSetChanged()」で更新しようとしたところ、エラー発生しした
10
+
11
+
12
+
13
+ 以下のページに同様の事象が報告されています。
14
+
15
+ [Android RecyclerView : notifyDataSetChanged() IllegalStateException](https://stackoverflow.com/questions/27070220/android-recyclerview-notifydatasetchanged-illegalstateexception)
16
+
17
+ 具体的にどのように記述して対応すれば良いのでしょうか?
18
+
19
+
20
+
21
+ ### 発生している問題・エラーメッセージ
22
+
23
+
24
+
25
+ ```
26
+
27
+ E/AndroidRuntime: FATAL EXCEPTION: main
28
+
29
+ Process: com.a.b, PID: 10998
30
+
31
+ java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling android.support.v7.widget.RecyclerView{cf244b5 VFED..... .F....ID 0,125-1080,1727 #7f08006e app:id/lv_alarm}, adapter:com.a.b.AlarmsAdapter@d14974a, layout:android.support.v7.widget.LinearLayoutManager@51926bb, context:com.a.b.MainActivity@c1f5cf9
32
+
33
+ at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2880)
34
+
35
+ at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onChanged(RecyclerView.java:5281)
36
+
37
+ at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyChanged(RecyclerView.java:11997)
38
+
39
+ at android.support.v7.widget.RecyclerView$Adapter.notifyDataSetChanged(RecyclerView.java:7070)
40
+
41
+ at com.a.b.AlarmsAdapter.alarm_switch_upd(AlarmsAdapter.java:200)
42
+
43
+ ```
10
44
 
11
45
 
12
46
 
@@ -82,6 +116,12 @@
82
116
 
83
117
  Collections.sort(AlarmList);
84
118
 
119
+
120
+
121
+ //リサイクルビュー更新
122
+
123
+ notifyDataSetChanged();
124
+
85
125
  }
86
126
 
87
127
  });
@@ -99,3 +139,5 @@
99
139
 
100
140
 
101
141
  Android Studio3.4
142
+
143
+ API14から28対象ターゲット28