質問編集履歴
5
不要削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -35,55 +35,7 @@
|
|
35
35
|
}
|
36
36
|
}
|
37
37
|
```
|
38
|
-
```PersonData.kt
|
39
|
-
data class PersonData(
|
40
|
-
var userName: String
|
41
|
-
)
|
42
|
-
```
|
43
|
-
```RecyclerAdapter.kt
|
44
|
-
class RecyclerAdapter(private var personList:MutableList<PersonData>):RecyclerView.Adapter<ViewHolderItem>() {
|
45
38
|
|
46
|
-
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolderItem {
|
47
|
-
val itemXml = LayoutInflater.from(parent.context)
|
48
|
-
.inflate(R.layout.one_layout,parent,false)
|
49
|
-
return ViewHolderItem(itemXml)
|
50
|
-
}
|
51
|
-
|
52
|
-
override fun onBindViewHolder(holder: ViewHolderItem, position: Int) {
|
53
|
-
val currentItem = personList[position]
|
54
|
-
holder.textViewHolder.text = currentItem.userName
|
55
|
-
}
|
56
|
-
|
57
|
-
override fun getItemCount(): Int {
|
58
|
-
return personList.size
|
59
|
-
}
|
60
|
-
}
|
61
|
-
```
|
62
|
-
```MainActivity.kt
|
63
|
-
var personList = mutableListOf<PersonData>()
|
64
|
-
private lateinit var recyclerView :RecyclerView
|
65
|
-
private var recyclerAdapter = RecyclerAdapter(personList)
|
66
|
-
|
67
|
-
class MainActivity : AppCompatActivity() {
|
68
|
-
override fun onCreate(savedInstanceState: Bundle?) {
|
69
|
-
super.onCreate(savedInstanceState)
|
70
|
-
setContentView(R.layout.activity_main)
|
71
|
-
|
72
|
-
recyclerView = findViewById(R.id.rv)
|
73
|
-
recyclerView.adapter = recyclerAdapter
|
74
|
-
recyclerView.layoutManager = LinearLayoutManager(this)
|
75
|
-
|
76
|
-
val btnAdd:Button = findViewById(R.id.btnAdd)
|
77
|
-
|
78
|
-
btnAdd.setOnClickListener {
|
79
|
-
val et :EditText = findViewById(R.id.et)
|
80
|
-
val data = PersonData(et.text.toString())
|
81
|
-
personList.add(data)
|
82
|
-
recyclerAdapter.notifyItemInserted(personList.lastIndex)
|
83
|
-
}
|
84
|
-
}
|
85
|
-
}
|
86
|
-
```
|
87
39
|
|
88
40
|
### 試したこと
|
89
41
|
this@ViewHolderItem
|
4
詳細追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,6 +13,7 @@
|
|
13
13
|
### 発生している問題・エラーメッセージ
|
14
14
|
|
15
15
|
```
|
16
|
+
AlertDialog.Builder(this)のところが
|
16
17
|
Type mismatch : inferred type is ViewHolderItem but Context! was expected
|
17
18
|
```
|
18
19
|
|
3
詳細追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
RecyclerView
|
1
|
+
RecyclerViewのViewHolderクラス(の中のinitブロック内)でcontextはどう書けばいいのでしょうか
|
test
CHANGED
@@ -4,24 +4,16 @@
|
|
4
4
|
▼入力したテキストを、ボタンをおしたら追加される
|
5
5
|
https://pg.akihiro-takeda.com/android-recyclerview-dynamic/
|
6
6
|
|
7
|
-
|
7
|
+
アイテムは追加できるようになった。
|
8
|
-
|
9
|
-
が、追加するだけで、
|
10
|
-
追加したアイテム(タッチしたアイテム)を削除する方法の説明がないので自分で奮闘中。
|
11
|
-
それっぽいコードは出来たのですが、エミュレータが無反応なので、正しい書き方を添削いただきたい
|
12
8
|
|
13
9
|
### 実現したいこと
|
14
10
|
|
15
|
-
追加したアイテムの一覧から、タッチしたアイ
|
11
|
+
追加したアイテムの一覧から、アイテムをタッチしたらアラートダイアログを表示させたい
|
16
12
|
|
17
13
|
### 発生している問題・エラーメッセージ
|
18
14
|
|
19
15
|
```
|
20
|
-
エミュレータが無反応。
|
21
|
-
おそらくViewHolderの書き方(remove)が間違っていると推測。ただし直し方・正しい書き方がわからない。
|
22
|
-
↓↓
|
23
|
-
personList.removeAt(position)
|
24
|
-
|
16
|
+
Type mismatch : inferred type is ViewHolderItem but Context! was expected
|
25
17
|
```
|
26
18
|
|
27
19
|
### 該当のソースコード
|
@@ -36,8 +28,8 @@
|
|
36
28
|
view.setOnClickListener {
|
37
29
|
val position:Int = adapterPosition
|
38
30
|
|
39
|
-
|
31
|
+
//アラートダイアログ
|
40
|
-
|
32
|
+
AlertDialog.Builder(this) //←ここ
|
41
33
|
}
|
42
34
|
}
|
43
35
|
}
|
@@ -93,10 +85,10 @@
|
|
93
85
|
```
|
94
86
|
|
95
87
|
### 試したこと
|
96
|
-
データの削除はremoveを使うらしい、というところまでは検索でたどり着いたので
|
97
|
-
ViewHolder
|
88
|
+
this@ViewHolderItem
|
89
|
+
とか
|
98
|
-
|
90
|
+
this@MainActivity
|
99
|
-
|
91
|
+
とか試してみたが、解決せず、ギブアップ。
|
100
92
|
|
101
93
|
### 補足情報(FW/ツールのバージョンなど)
|
102
94
|
|
2
補足追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,6 +19,9 @@
|
|
19
19
|
```
|
20
20
|
エミュレータが無反応。
|
21
21
|
おそらくViewHolderの書き方(remove)が間違っていると推測。ただし直し方・正しい書き方がわからない。
|
22
|
+
↓↓
|
23
|
+
personList.removeAt(position)
|
24
|
+
recyclerAdapter.notifyItemRemoved(position)
|
22
25
|
```
|
23
26
|
|
24
27
|
### 該当のソースコード
|
1
追記・補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
|
-
ここに質問の内容を詳しく書いてください。
|
4
3
|
kotlinでこちらのサイトを参考に、RecyclerViewにアイテムを追加する記述を学習。
|
4
|
+
▼入力したテキストを、ボタンをおしたら追加される
|
5
5
|
https://pg.akihiro-takeda.com/android-recyclerview-dynamic/
|
6
6
|
|
7
|
-
実際、追加する
|
7
|
+
実際、アイテムを追加する、というところまでは出来るようになりました。
|
8
8
|
|
9
9
|
が、追加するだけで、
|
10
10
|
追加したアイテム(タッチしたアイテム)を削除する方法の説明がないので自分で奮闘中。
|