質問編集履歴

1

コードを変更しました

2021/11/25 00:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,85 +16,133 @@
16
16
 
17
17
 
18
18
 
19
- ```ListView
19
+ ```MainActivity
20
+
20
-
21
+ val et_name : EditText = findViewById(R.id.et_name)
22
+
21
- //ListViewに追加してタップすると削除できる
23
+ val bt_add : Button = findViewById(R.id.bt_add)
24
+
22
-
25
+ val bt_delete : Button = findViewById(R.id.bt_delete)
23
-
24
26
 
25
27
  val lv : ListView = findViewById(R.id.lv)
26
28
 
27
- val bt_add : Button = findViewById(R.id.bt_add)
29
+
28
-
29
-
30
-
31
-
32
-
33
- //アダプターに入れてListViewにセットする
30
+
34
-
35
- val adapter = ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,mutableListOf())//mutableListof()じゃなくてArrayListOF()でも出来る
31
+ val adapter = ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,
32
+
33
+ mutableListOf())
36
34
 
37
35
  lv.adapter = adapter
38
36
 
39
37
 
40
38
 
41
- //ボタン押すとアラートダイアログ
39
+ //Realm使う時に必要
40
+
41
+ val realm = Realm.getDefaultInstance()
42
+
43
+
44
+
45
+ //bt_addを押すとet_nameに入力した内容をDBに保存とListViewに表示する処理を記載する
42
46
 
43
47
  bt_add.setOnClickListener {
44
48
 
45
-
49
+ if ( et_name.text.toString().isEmpty()){
46
-
50
+
47
- val et = EditText(this)
51
+ AlertDialog.Builder(this)
52
+
48
-
53
+ .setTitle("未入力")
54
+
49
-
55
+ .setMessage("名前を入力して下さい")
56
+
57
+ .setPositiveButton("OK",null)
58
+
59
+ .show()//et_nameが未入力の場合、アラートダイアログで表示
60
+
61
+ }else{
62
+
63
+ realm.beginTransaction()//Realmのはじまり
64
+
65
+ try {
66
+
67
+ val user = realm.createObject(user::class.java)
68
+
69
+ user.setName(et_name.text.toString())//DBに書き込み
70
+
71
+ et_name.text.clear()//DBに書き込みしたらEditTextの文字をクリアする
72
+
73
+ Toast.makeText(applicationContext,"登録しました",Toast.LENGTH_SHORT).show()//トーストで表示
74
+
75
+ realm.commitTransaction()
76
+
77
+ adapter.add(user.getName())//et_nameの内容をListViewに追加する
78
+
79
+ }catch (e:RealmException){}
80
+
81
+ }
82
+
83
+ }
84
+
85
+
86
+
87
+ //ListViewをタップするとアラートダイアログを表示して、削除するかしないか判断する
88
+
89
+ //合わせてDBに登録されているデータも一緒に削除する
90
+
91
+ lv.setOnItemClickListener { parent, view, position, id ->
50
92
 
51
93
  AlertDialog.Builder(this)
52
94
 
53
- .setTitle("項目の追加")
95
+ .setTitle("削除しますか??")
96
+
54
-
97
+ //Yesを押下した時の処理
98
+
55
- .setMessage("何する??")
99
+ //タップされたところの名前削除とDBの削除
56
-
57
- .setView(et)
100
+
58
-
59
- .setPositiveButton("追加",DialogInterface.OnClickListener { dialog, which ->
101
+ .setPositiveButton("Yes",DialogInterface.OnClickListener { dialog, which ->
102
+
60
-
103
+ adapter.remove(adapter.getItem(id.toInt()))
104
+
105
+ adapter.notifyDataSetChanged()
106
+
61
- //adapterに追加する
107
+ //ここからDBの削除の処理を記載する
108
+
62
-
109
+ //現時点でタップされたとこの名前のDB削除方法は分からない
110
+
111
+ realm.beginTransaction()
112
+
63
- val myTodo = et.text.toString()
113
+ val delete = adapter.getItem(id.toInt())
114
+
64
-
115
+ realm.where(user::class.java)
116
+
117
+ et_name.text.clear()
118
+
119
+ //Toast.makeText(applicationContext,"削除しました",Toast.LENGTH_SHORT).show()
120
+
65
- adapter.add(myTodo)
121
+ realm.commitTransaction()
66
122
 
67
123
  })
68
124
 
69
- .setNegativeButton("キャンセル",null)
125
+ .setNegativeButton("No",DialogInterface.OnClickListener { dialog, which ->
126
+
127
+ Toast.makeText(applicationContext,"キャンセルしました",Toast.LENGTH_SHORT).show()
128
+
129
+ })
70
130
 
71
131
  .show()
72
132
 
73
-
74
-
75
133
  }
76
134
 
77
-
78
-
79
- //ListViewをタッチしたらアラトダイアログ
135
+ //これは予備コ
136
+
80
-
137
+ //DB全削除用
138
+
81
- lv.setOnItemClickListener { parent, view, position, id ->
139
+ bt_delete.setOnClickListener {
82
-
140
+
83
- AlertDialog.Builder(this)
141
+ realm.beginTransaction()
84
-
85
- .setTitle("削除しますか?")
142
+
86
-
87
- .setPositiveButton("YES",DialogInterface.OnClickListener { dialog, which ->
88
-
89
- adapter.remove(adapter.getItem(id.toInt()))//ListViewをタッチすると削除
90
-
91
- adapter.notifyDataSetChanged()//画面を更新する呪文
143
+ realm.where(user::class.java).findAll().deleteAllFromRealm()
92
-
93
- })
144
+
94
-
95
- .setNegativeButton("NO",null)
145
+ realm.commitTransaction()
96
-
97
- .show()
98
146
 
99
147
  }
100
148
 
@@ -106,6 +154,130 @@
106
154
 
107
155
 
108
156
 
157
+ ```user
158
+
159
+ open class user : RealmObject(){
160
+
161
+ private var name : String = ""
162
+
163
+
164
+
165
+ fun setName(name:String){
166
+
167
+ this.name = name
168
+
169
+ }
170
+
171
+
172
+
173
+ fun getName():String{
174
+
175
+ return name
176
+
177
+ }
178
+
179
+
180
+
181
+ }
182
+
183
+ ```
184
+
185
+ ```activitymainXML
186
+
187
+
188
+
189
+ <?xml version="1.0" encoding="utf-8"?>
190
+
191
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
192
+
193
+ xmlns:app="http://schemas.android.com/apk/res-auto"
194
+
195
+ xmlns:tools="http://schemas.android.com/tools"
196
+
197
+ android:layout_width="match_parent"
198
+
199
+ android:layout_height="match_parent"
200
+
201
+ tools:context=".MainActivity">
202
+
203
+
204
+
205
+ <EditText
206
+
207
+ android:id="@+id/et_name"
208
+
209
+ android:layout_width="match_parent"
210
+
211
+ android:layout_height="wrap_content"
212
+
213
+ android:ems="10"
214
+
215
+ android:inputType="textPersonName"
216
+
217
+ android:hint="name"
218
+
219
+ app:layout_constraintStart_toStartOf="parent"
220
+
221
+ app:layout_constraintTop_toTopOf="parent" />
222
+
223
+
224
+
225
+ <Button
226
+
227
+ android:id="@+id/bt_add"
228
+
229
+ android:layout_width="wrap_content"
230
+
231
+ android:layout_height="wrap_content"
232
+
233
+ android:text="add"
234
+
235
+ app:layout_constraintEnd_toEndOf="parent"
236
+
237
+ app:layout_constraintTop_toBottomOf="@+id/et_name" />
238
+
239
+
240
+
241
+ <ListView
242
+
243
+ android:id="@+id/lv"
244
+
245
+ android:layout_width="409dp"
246
+
247
+ android:layout_height="636dp"
248
+
249
+ android:layout_marginStart="1dp"
250
+
251
+ android:layout_marginTop="1dp"
252
+
253
+ android:layout_marginEnd="1dp"
254
+
255
+ app:layout_constraintEnd_toEndOf="parent"
256
+
257
+ app:layout_constraintStart_toStartOf="parent"
258
+
259
+ app:layout_constraintTop_toBottomOf="@+id/bt_add" />
260
+
261
+
262
+
263
+ <Button
264
+
265
+ android:id="@+id/bt_delete"
266
+
267
+ android:layout_width="wrap_content"
268
+
269
+ android:layout_height="wrap_content"
270
+
271
+ android:text="Button"
272
+
273
+ app:layout_constraintEnd_toStartOf="@+id/bt_add"
274
+
275
+ app:layout_constraintTop_toBottomOf="@+id/et_name" />
276
+
277
+ ```
278
+
279
+
280
+
109
281
  ### 補足情報(FW/ツールのバージョンなど)
110
282
 
111
283