質問編集履歴

1

ソースコードの貼り付けが漏れていたため貼り付けいたしました。申し訳ありません。

2020/05/05 06:33

投稿

kenta0228
kenta0228

スコア20

test CHANGED
File without changes
test CHANGED
@@ -18,11 +18,349 @@
18
18
 
19
19
 
20
20
 
21
- ```ここに言語名を入力
21
+ 言語名:Kotlin
22
22
 
23
23
  ソースコード
24
24
 
25
+ 【MainActivity.kt】
26
+
27
+ package com.example.kenta.intentsample
28
+
29
+
30
+
31
+ import android.content.Intent
32
+
33
+ import androidx.appcompat.app.AppCompatActivity
34
+
35
+ import android.os.Bundle
36
+
37
+ import android.view.View
38
+
39
+ import android.widget.AdapterView
40
+
41
+ import android.widget.ListView
42
+
43
+ import android.widget.SimpleAdapter
44
+
45
+
46
+
47
+ class MainActivity : AppCompatActivity() {
48
+
49
+
50
+
51
+ override fun onCreate(savedInstanceState: Bundle?) {
52
+
53
+ super.onCreate(savedInstanceState)
54
+
55
+ setContentView(R.layout.activity_main)
56
+
57
+ //画面部品ListViewを取得
58
+
59
+ val lvMenu = findViewById<ListView>(R.id.lvMenu)
60
+
61
+ //SimpleAdapterで使用するMutableListオブジェクトを用意。
62
+
63
+ val menuList: MutableList<MutableMap<String, String>> = mutableListOf()
64
+
65
+ //「から揚げ定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
66
+
67
+ var menu = mutableMapOf("name" to "から揚げ定食", "price" to "800円")
68
+
69
+ menuList.add(menu)
70
+
71
+ //「ハンバーグ定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
72
+
73
+ menu = mutableMapOf("name" to "ハンバーグ定食", "price" to "850円")
74
+
75
+ menuList.add(menu)
76
+
77
+ //「生姜焼き定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
78
+
79
+ menu = mutableMapOf("name" to "生姜焼き定食", "price" to "850円")
80
+
81
+ menuList.add(menu)
82
+
83
+ //「ステーキ定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
84
+
85
+ menu = mutableMapOf("name" to "ステーキ定食", "price" to "1000円")
86
+
87
+ menuList.add(menu)
88
+
89
+ //「野菜炒め定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
90
+
91
+ menu = mutableMapOf("name" to "野菜炒め定食", "price" to "750円")
92
+
93
+ menuList.add(menu)
94
+
95
+ //「とんかつ定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
96
+
97
+ menu = mutableMapOf("name" to "とんかつ定食", "price" to "900円")
98
+
99
+ menuList.add(menu)
100
+
101
+ //「ミンチかつ定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
102
+
103
+ menu = mutableMapOf("name" to "ミンチかつ定食", "price" to "850円")
104
+
105
+ menuList.add(menu)
106
+
107
+ //「チキンカツ定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
108
+
109
+ menu = mutableMapOf("name" to "チキンカツ定食", "price" to "900円")
110
+
111
+ menuList.add(menu)
112
+
113
+ //「コロッケ定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
114
+
115
+ menu = mutableMapOf("name" to "コロッケ定食", "price" to "850円")
116
+
117
+ menuList.add(menu)
118
+
119
+ //「焼き魚定食」のデータを格納するMapオブジェクトの用意とmenuListへのデータ登録。
120
+
121
+ menu = mutableMapOf("name" to "焼き魚定食", "price" to "750円")
122
+
123
+ menuList.add(menu)
124
+
125
+
126
+
127
+ //SimpleAdapter第4引数from用データの用意。
128
+
129
+ val from = arrayOf("name", "price")
130
+
131
+ //SimpleAdapter第5引数to用データの用意。
132
+
133
+ val to = intArrayOf(android.R.id.text1, android.R.id.text2)
134
+
135
+ //SimpleAdapterを生成。
136
+
137
+ val adapter = SimpleAdapter(applicationContext, menuList, android.R.layout.simple_list_item_2, from, to)
138
+
139
+ //アダプタの登録。
140
+
141
+ lvMenu.adapter = adapter
142
+
143
+
144
+
145
+ //リストタップのリスナクラス登録
146
+
147
+ lvMenu.onItemClickListener = ListItemClickListener()
148
+
149
+ }
150
+
151
+
152
+
153
+ //リストがタップされた時の処理が記述されたメンバクラス。
154
+
155
+ private inner class ListItemClickListener : AdapterView.OnItemClickListener {
156
+
157
+ override fun onItemClick(parent: AdapterView<*>, view: View, position: Int, id: Long) {
158
+
159
+ //タップされた行のデータを取得。SimpleAdapterでは1行分のデータはMutableMap型!
160
+
161
+ val item = parent.getItemIdAtPosition(position) as MutableMap<String, String>
162
+
163
+ //定食名と金額を取得。
164
+
165
+ val menuName = item["name"]
166
+
167
+ val menuPrice = item["price"]
168
+
169
+ //インテントオブジェクトを生成。
170
+
171
+ val intent = Intent(applicationContext, MenuThanksActivity::class.java)
172
+
173
+ //第2画面に送るデータを格納。
174
+
175
+ intent.putExtra("menuName", menuName)
176
+
177
+ intent.putExtra("menuPrice", menuPrice)
178
+
179
+ //第2画面の起動。
180
+
181
+ startActivity(intent)
182
+
183
+ }
184
+
185
+ }
186
+
187
+
188
+
189
+ }
190
+
191
+
192
+
193
+ 【MenuThanksActivity.kt】
194
+
195
+ package com.example.kenta.intentsample
196
+
197
+
198
+
199
+ import androidx.appcompat.app.AppCompatActivity
200
+
201
+ import android.os.Bundle
202
+
203
+ import android.view.View
204
+
205
+ import android.widget.TextView
206
+
207
+
208
+
209
+ class MenuThanksActivity : AppCompatActivity() {
210
+
211
+
212
+
213
+ override fun onCreate(savedInstanceState: Bundle?) {
214
+
215
+ super.onCreate(savedInstanceState)
216
+
217
+ setContentView(R.layout.activity_menu_thanks)
218
+
219
+
220
+
221
+ //リスト画面から渡されたデータを取得。
222
+
223
+ val menuName = intent.getStringExtra("menuName")
224
+
225
+ val menuPrice = intent.getStringExtra("menuPrice")
226
+
227
+
228
+
229
+ //定食名と金額を表示させるTextViewを取得。
230
+
231
+ val tvMenuName = findViewById<TextView>(R.id.tvMenuName)
232
+
233
+ val tvMenuPrice = findViewById<TextView>(R.id.tvMenuPrice)
234
+
235
+
236
+
237
+ //TextViewに定食名と金額を表示。
238
+
239
+ tvMenuName.text = menuName
240
+
241
+ tvMenuPrice.text = menuPrice
242
+
243
+ }
244
+
245
+
246
+
247
+ //戻るボタンをタップした時の処理。
248
+
249
+ fun onBackButtonClick(view: View){
250
+
25
- ```
251
+ finish()
252
+
253
+ }
254
+
255
+ }
256
+
257
+
258
+
259
+ 【activity_main.xml】
260
+
261
+ <?xml version="1.0" encoding="utf-8"?>
262
+
263
+ <ListView
264
+
265
+ xmlns:android="http://schemas.android.com/apk/res/android"
266
+
267
+ android:id="@+id/lvMenu"
268
+
269
+ android:layout_width="match_parent"
270
+
271
+ android:layout_height="match_parent"/>
272
+
273
+
274
+
275
+
276
+
277
+ 【activity_menu_thanks.xml】
278
+
279
+ <?xml version="1.0" encoding="utf-8"?>
280
+
281
+ <LinearLayout
282
+
283
+ xmlns:android="http://schemas.android.com/apk/res/android"
284
+
285
+ android:layout_width="match_parent"
286
+
287
+ android:layout_height="match_parent"
288
+
289
+ android:orientation="vertical">
290
+
291
+
292
+
293
+ <TextView
294
+
295
+ android:layout_width="match_parent"
296
+
297
+ android:layout_height="wrap_content"
298
+
299
+ android:layout_marginBottom="10dp"
300
+
301
+ android:layout_gravity="center"
302
+
303
+ android:text="@string/tv_thx_title"
304
+
305
+ android:textSize="25sp"/>
306
+
307
+ <TextView
308
+
309
+ android:layout_width="match_parent"
310
+
311
+ android:layout_height="wrap_content"
312
+
313
+ android:layout_marginBottom="10dp"
314
+
315
+ android:text="@string/tv_thx_desc"
316
+
317
+ android:textSize="15sp"/>
318
+
319
+ <LinearLayout
320
+
321
+ android:layout_width="match_parent"
322
+
323
+ android:layout_height="wrap_content"
324
+
325
+ android:orientation="horizontal">
326
+
327
+ <TextView
328
+
329
+ android:id="@+id/tvMenuName"
330
+
331
+ android:layout_width="0dp"
332
+
333
+ android:layout_height="wrap_content"
334
+
335
+ android:layout_weight="1"/>
336
+
337
+ <TextView
338
+
339
+ android:id="@+id/tvMenuPrice"
340
+
341
+ android:layout_width="wrap_content"
342
+
343
+ android:layout_height="wrap_content"/>
344
+
345
+ </LinearLayout>
346
+
347
+ <Button
348
+
349
+ android:layout_width="match_parent"
350
+
351
+ android:layout_height="wrap_content"
352
+
353
+ android:onClick="onBackButtonClick"
354
+
355
+ android:text="@string/bt_thx_back"/>
356
+
357
+
358
+
359
+ </LinearLayout>
360
+
361
+
362
+
363
+
26
364
 
27
365
 
28
366
 
@@ -30,7 +368,9 @@
30
368
 
31
369
 
32
370
 
33
- ここに問題に対ししたことを記載してください
371
+ 先ほどソースコードを貼り付けたつもりですが、貼り付けできおりませんでした。
372
+
373
+ 申し訳ありません。
34
374
 
35
375
 
36
376
 
@@ -38,4 +378,4 @@
38
378
 
39
379
 
40
380
 
41
- ここにより詳細な情報を記載してください。
381
+ Mac版 AndroidStudi3.6.3