質問編集履歴
6
エラー追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,12 +1,19 @@
|
|
1
1
|
今現在todoアプリを作っています
|
2
2
|
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。Adapter内のrealm.executeTransaction内で二回目に、flgを更新する時にアプリが強制終了していますが、解決方法がわかりません。どなたか助言を頂けないでしょうか。
|
3
|
-
|
3
|
+
##発生しているエラーメッセージ
|
4
|
+
2020-03-12 20:27:59.431 8936-8936/? E/.example.mytas: Unknown bits set in runtime_flags: 0x8000
|
5
|
+
2020-03-12 20:28:08.039 8936-8936/com.example.mytask A/.example.mytas: java_vm_ext.cc:570] JNI DETECTED ERROR IN APPLICATION: JNI NewLocalRef called with pending exception java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView{ea9d690 VFED..... ......ID 0,909-1080,1584 #7f080108 app:id/task_list}, adapter:com.example.mytask.TaskAdapter@1106b89, layout:androidx.recyclerview.widget.LinearLayoutManager@9b7b78e, context:com.example.mytask.MainActivity@3b61e53
|
6
|
+
2020-03-12 20:28:08.039 8936-8936/com.example.mytask A/.example.mytas: java_vm_ext.cc:570] at void androidx.recyclerview.widget.RecyclerView.assertNotInLayoutOrScroll(java.lang.String) (RecyclerView.java:3051)
|
7
|
+
2020-03-12 20:28:08.039 8936-8936/com.example.mytask A/.example.mytas: java_vm_ext.cc:570] at void androidx.recyclerview.widget.RecyclerView$RecyclerViewDataObserver.onItemRangeChanged(int, int, java.lang.Object) (RecyclerView.java:5547)
|
8
|
+
2020-03-12 20:28:08.039 8936-8936/com.example.mytask A/.example.mytas: java_vm_ext.cc:570] at void androidx.recyclerview.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(int, int, java.lang.Object) (RecyclerView.java:12268)
|
4
9
|
|
5
10
|
|
6
11
|
|
7
12
|
下が現在作成しているアプリの画面です
|
8
13
|

|
9
14
|
|
15
|
+
##ソースコード
|
16
|
+
|
10
17
|
```adapter
|
11
18
|
class TaskAdapter(data: OrderedRealmCollection<Task>, val realm: Realm):
|
12
19
|
RealmRecyclerViewAdapter<Task, TaskAdapter.ViewHolder>(data, true){
|
5
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
今現在todoアプリを作っています
|
2
|
-
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。Adapter内のrealm.executeTransactionが強制終了
|
2
|
+
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。Adapter内のrealm.executeTransaction内で二回目に、flgを更新する時にアプリが強制終了していますが、解決方法がわかりません。どなたか助言を頂けないでしょうか。
|
3
3
|
E/.example.mytas: Unknown bits set in runtime_flags: 0x8000というエラーが有りました。
|
4
4
|
|
5
5
|
|
4
realm.getdefoult() realm.closeを削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|

|
9
9
|
|
10
10
|
```adapter
|
11
|
-
class TaskAdapter(data: OrderedRealmCollection<Task>,
|
11
|
+
class TaskAdapter(data: OrderedRealmCollection<Task>, val realm: Realm):
|
12
12
|
RealmRecyclerViewAdapter<Task, TaskAdapter.ViewHolder>(data, true){
|
13
13
|
|
14
14
|
init {
|
@@ -36,7 +36,6 @@
|
|
36
36
|
//指定された位置にデータを表示する必要がある時、呼び出される
|
37
37
|
override fun onBindViewHolder(holder: TaskAdapter.ViewHolder, position: Int) {
|
38
38
|
|
39
|
-
var realm: Realm = Realm.getDefaultInstance()
|
40
39
|
//データを取得
|
41
40
|
val task: Task? = getItem(position)
|
42
41
|
//Viewに値をセット
|
@@ -50,7 +49,7 @@
|
|
50
49
|
val prevTask: Task? = if (position > 0) getItem(position - 1) else null
|
51
50
|
val df = SimpleDateFormat("yyyy/MM/dd")
|
52
51
|
if(prevTask != null){
|
53
|
-
//日付が一致するなら
|
52
|
+
//日付が一致するなら日付を消してくっつける
|
54
53
|
if(df.format(prevTask?.date) == df.format(task?.date)){
|
55
54
|
holder.date.setVisibility(View.GONE);
|
56
55
|
}
|
@@ -71,23 +70,19 @@
|
|
71
70
|
// アンチエイリアスをオンにする
|
72
71
|
paint.isAntiAlias = true
|
73
72
|
|
74
|
-
|
73
|
+
|
75
|
-
realm.executeTransaction {db: Realm->
|
76
|
-
val get_task = db.where<Task>().equalTo("id", task?.id).findFirst()
|
77
|
-
get_task?.flg = true
|
78
|
-
}
|
79
74
|
}else if(isChecked == false){
|
80
75
|
//取り消し線を消す
|
81
76
|
holder.title.text = task?.title
|
82
77
|
paint.flags = holder.title.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
|
83
|
-
//タスクを完了前にする
|
84
|
-
realm.executeTransaction {db: Realm->
|
85
|
-
val get_task = db.where<Task>().equalTo("id", task?.id).findFirst()
|
86
|
-
get_task?.flg = false
|
87
|
-
|
78
|
+
}
|
88
79
|
|
80
|
+
realm.executeTransaction {db: Realm->
|
81
|
+
var get_task : Task?
|
82
|
+
get_task = db.where<Task>().equalTo("id", task?.id).findFirst()
|
83
|
+
get_task?.flg = holder.switch.isChecked
|
89
84
|
}
|
90
|
-
|
85
|
+
|
91
86
|
}
|
92
87
|
}
|
93
88
|
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
今現在todoアプリを作っています
|
2
|
-
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。
|
2
|
+
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。Adapter内のrealm.executeTransactionが強制終了の原因だと思っていますが、解決方法がわかりません。どなたか助言を頂けないでしょうか。
|
3
|
+
E/.example.mytas: Unknown bits set in runtime_flags: 0x8000というエラーが有りました。
|
3
4
|
|
4
5
|
|
5
6
|
|
2
エラーの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
今現在todoアプリを作っています
|
2
|
-
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。調べてみましたが検討がつきません。どなたか助言を頂けないでしょうか。
|
2
|
+
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。E/.example.mytas: Unknown bits set in runtime_flags: 0x8000というエラーが有りました。調べてみましたが検討がつきません。どなたか助言を頂けないでしょうか。
|
3
3
|
|
4
|
+
|
5
|
+
|
4
6
|
下が現在作成しているアプリの画面です
|
5
7
|

|
6
8
|
|
7
9
|
```adapter
|
8
|
-
class TaskAdapter(data: OrderedRealmCollection<Task>):
|
10
|
+
class TaskAdapter(data: OrderedRealmCollection<Task>, val realm: Realm):
|
9
11
|
RealmRecyclerViewAdapter<Task, TaskAdapter.ViewHolder>(data, true){
|
10
12
|
|
11
13
|
init {
|
@@ -108,7 +110,7 @@
|
|
108
110
|
task_list.layoutManager = LinearLayoutManager(this)
|
109
111
|
var task = realm.where<Task>().findAll()
|
110
112
|
task = task.sort("date")
|
111
|
-
val adapter = TaskAdapter(task)
|
113
|
+
val adapter = TaskAdapter(task,realm)
|
112
114
|
task_list.adapter = adapter
|
113
115
|
|
114
116
|
//タスク 追加ボタンタップ
|
1
初心者マーク
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
今現在todoアプリを作っています
|
1
|
+
今現在todoアプリを作っています
|
2
2
|
タスクの完了・未完了を切り替えるためにswitchビューを使って処理しているのですが、同じセルのswitchビューを2回切り替えると、アプリが強制終了してしまいます。調べてみましたが検討がつきません。どなたか助言を頂けないでしょうか。
|
3
3
|
|
4
4
|
下が現在作成しているアプリの画面です
|