質問編集履歴
3
訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
Buttonを押したら、番組名と開始時間、終了時間が出る番組表アプリを作りたいです。
|
88
88
|
現在"title"と記載し、実行しましたが表示されませんでした。
|
89
|
-
数日試行錯誤しましたが、まだ分からずにいます
|
89
|
+
数日試行錯誤しましたが、まだ分からずにいます
|
90
90
|
ご教授いただければ幸いです。
|
91
91
|
よろしくお願いします。
|
92
92
|
|
2
訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -23,12 +23,12 @@
|
|
23
23
|
super.onCreate(savedInstanceState)
|
24
24
|
setContentView(R.layout.activity_main)
|
25
25
|
|
26
|
-
val apiKey = "******
|
26
|
+
val apiKey = "******"
|
27
|
-
val mainUrl = "https://api.nhk.or.jp/v2/pg/list/130/g1/2022-01-2
|
27
|
+
val mainUrl = "https://api.nhk.or.jp/v2/pg/list/130/g1/2022-01-29.json"
|
28
28
|
|
29
|
-
val tv:
|
29
|
+
val tv:TextView = findViewById(R.id.tv)
|
30
30
|
tv.setMovementMethod(ScrollingMovementMethod())
|
31
|
-
val btn:
|
31
|
+
val btn:Button = findViewById(R.id.btn)
|
32
32
|
|
33
33
|
btn.setOnClickListener {
|
34
34
|
val nhk = "$mainUrl?key=$apiKey"
|
@@ -36,10 +36,10 @@
|
|
36
36
|
}
|
37
37
|
}
|
38
38
|
|
39
|
-
private fun nhkTask(nhk:
|
39
|
+
private fun nhkTask(nhk:String) {
|
40
40
|
lifecycleScope.launch {
|
41
41
|
val result = nhkBackgroundTask(nhk)
|
42
|
-
nhkJsonTask(result)
|
42
|
+
nhkJsonTask(result)
|
43
43
|
}
|
44
44
|
}
|
45
45
|
|
@@ -49,48 +49,43 @@
|
|
49
49
|
|
50
50
|
try {
|
51
51
|
val nhkObj = URL(nhk)
|
52
|
-
|
52
|
+
val br = BufferedReader(InputStreamReader(nhkObj.openStream()))
|
53
|
+
|
54
|
+
httpResult = br.use { it.readText() }
|
55
|
+
} catch (e: IOException) {
|
56
|
+
e.printStackTrace()
|
57
|
+
}
|
58
|
+
return@withContext httpResult
|
59
|
+
}
|
60
|
+
return response
|
61
|
+
}
|
53
62
|
|
54
|
-
httpResult = br.use { it.readText() }
|
55
|
-
} catch (e: IOException) {
|
56
|
-
e.printStackTrace()
|
57
|
-
|
58
|
-
}
|
59
|
-
return@withContext httpResult
|
60
|
-
}
|
61
|
-
return response
|
62
|
-
}
|
63
|
-
|
64
|
-
|
63
|
+
private fun nhkJsonTask(result: String) {
|
65
|
-
|
64
|
+
val tv:TextView = findViewById(R.id.tv)
|
66
65
|
|
67
66
|
|
68
|
-
|
67
|
+
try {
|
69
|
-
|
68
|
+
val jsonObj = JSONObject(result)
|
70
69
|
|
70
|
+
val nhkAry = jsonObj.getJSONArray("g1")
|
71
|
+
val nhkObj = nhkAry.getJSONObject(0)
|
71
|
-
|
72
|
+
val nhk = nhkObj.getString("title")
|
72
|
-
tv.text =nhkName
|
73
|
-
|
74
|
-
val nhkJSONArray =jsonObj.getJSONArray("title")
|
75
|
-
val nhkJSON =nhkJSONArray.getJSONObject(0)
|
76
|
-
val nhk =nhkJSON.getString("start_time")
|
77
|
-
|
73
|
+
tv.text = nhk
|
78
|
-
|
79
|
-
|
74
|
+
|
80
75
|
} catch (e: JSONException) {
|
81
|
-
|
76
|
+
e.printStackTrace()
|
82
77
|
}
|
78
|
+
}
|
79
|
+
}
|
83
80
|
|
84
81
|
|
85
|
-
}
|
86
|
-
}
|
87
82
|
```
|
88
83
|
【NHK 番組表API】を作成にあたり、不明点がありご回答いただきたいです。
|
89
84
|
解決策を教えていただきたいです。
|
90
85
|
下記URL貼っていますので、確認いただきたいです。
|
91
86
|
|
92
87
|
Buttonを押したら、番組名と開始時間、終了時間が出る番組表アプリを作りたいです。
|
93
|
-
"title"
|
88
|
+
現在"title"と記載し、実行しましたが表示されませんでした。
|
94
89
|
数日試行錯誤しましたが、まだ分からずにいます。
|
95
90
|
ご教授いただければ幸いです。
|
96
91
|
よろしくお願いします。
|
1
追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Android Studio API
|
1
|
+
お助けください。Android Studio API
|
test
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
import androidx.appcompat.app.AppCompatActivity
|
5
5
|
import android.os.Bundle
|
6
|
+
import android.text.method.ScrollingMovementMethod
|
6
7
|
import android.widget.Button
|
7
8
|
import android.widget.TextView
|
8
9
|
import androidx.lifecycle.lifecycleScope
|
@@ -17,57 +18,84 @@
|
|
17
18
|
import java.net.URL
|
18
19
|
|
19
20
|
class MainActivity : AppCompatActivity() {
|
21
|
+
|
20
22
|
override fun onCreate(savedInstanceState: Bundle?) {
|
21
23
|
super.onCreate(savedInstanceState)
|
22
24
|
setContentView(R.layout.activity_main)
|
23
|
-
|
24
|
-
val apiKey = "****************"
|
25
|
-
val mainUrl = "https://api.nhk.or.jp/v2/pg/list/"
|
26
25
|
|
26
|
+
val apiKey = "**********"
|
27
|
+
val mainUrl = "https://api.nhk.or.jp/v2/pg/list/130/g1/2022-01-28.json"
|
28
|
+
|
27
|
-
val tv:TextView = findViewById(R.id.tv)
|
29
|
+
val tv: TextView = findViewById(R.id.tv)
|
30
|
+
tv.setMovementMethod(ScrollingMovementMethod())
|
28
|
-
val btn:Button = findViewById(R.id.btn)
|
31
|
+
val btn: Button = findViewById(R.id.btn)
|
29
32
|
|
30
33
|
btn.setOnClickListener {
|
31
|
-
val nhk = "$mainUrl$apiKey"
|
34
|
+
val nhk = "$mainUrl?key=$apiKey"
|
32
35
|
nhkTask(nhk)
|
33
36
|
}
|
34
37
|
}
|
38
|
+
|
35
|
-
private fun nhkTask(nhk:String) {
|
39
|
+
private fun nhkTask(nhk: String) {
|
36
40
|
lifecycleScope.launch {
|
37
41
|
val result = nhkBackgroundTask(nhk)
|
42
|
+
nhkJsonTask(result)
|
38
43
|
}
|
39
44
|
}
|
45
|
+
|
40
|
-
private suspend fun nhkBackgroundTask(nhk: String):String{
|
46
|
+
private suspend fun nhkBackgroundTask(nhk: String): String {
|
41
|
-
val response = withContext(Dispatchers.IO){
|
47
|
+
val response = withContext(Dispatchers.IO) {
|
42
48
|
var httpResult = ""
|
43
49
|
|
44
50
|
try {
|
45
51
|
val nhkObj = URL(nhk)
|
46
52
|
val br = BufferedReader(InputStreamReader(nhkObj.openStream()))
|
47
53
|
|
48
|
-
httpResult = br.read
|
54
|
+
httpResult = br.use { it.readText() }
|
49
|
-
}catch (e:IOException){
|
55
|
+
} catch (e: IOException) {
|
50
56
|
e.printStackTrace()
|
51
|
-
|
57
|
+
|
52
|
-
e.printStackTrace()
|
53
58
|
}
|
54
59
|
return@withContext httpResult
|
55
60
|
}
|
56
61
|
return response
|
57
62
|
}
|
58
|
-
private fun nhkJsonTask(result: String){
|
59
|
-
val tv:TextView = findViewById(R.id.tv)
|
60
63
|
|
64
|
+
private fun nhkJsonTask(result: String) {
|
65
|
+
val tv: TextView = findViewById(R.id.tv)
|
66
|
+
|
67
|
+
|
68
|
+
try {
|
61
|
-
val jsonObj = JSONObject(result)
|
69
|
+
val jsonObj = JSONObject(result)
|
70
|
+
|
62
|
-
val nhkName =
|
71
|
+
val nhkName =jsonObj.getString("title")
|
63
|
-
tv.text =
|
72
|
+
tv.text =nhkName
|
73
|
+
|
74
|
+
val nhkJSONArray =jsonObj.getJSONArray("title")
|
75
|
+
val nhkJSON =nhkJSONArray.getJSONObject(0)
|
76
|
+
val nhk =nhkJSON.getString("start_time")
|
77
|
+
tv.text =nhk
|
78
|
+
|
79
|
+
tv.text = jsonObj.toString(2)
|
80
|
+
} catch (e: JSONException) {
|
81
|
+
e.printStackTrace()
|
82
|
+
}
|
83
|
+
|
84
|
+
|
64
85
|
}
|
65
86
|
}
|
66
87
|
```
|
67
88
|
【NHK 番組表API】を作成にあたり、不明点がありご回答いただきたいです。
|
68
89
|
解決策を教えていただきたいです。
|
69
|
-
URL貼っていますので確認いただきたいです。
|
90
|
+
下記URL貼っていますので、確認いただきたいです。
|
91
|
+
|
92
|
+
Buttonを押したら、番組名と開始時間、終了時間が出る番組表アプリを作りたいです。
|
93
|
+
"title" "start_time"と記載し、実行しましたが表示されませんでした。
|
94
|
+
数日試行錯誤しましたが、まだ分からずにいます。
|
95
|
+
ご教授いただければ幸いです。
|
96
|
+
よろしくお願いします。
|
97
|
+
|
70
|
-
[
|
98
|
+
[URL](https://api-portal.nhk.or.jp/doc-list-v2-con)
|
71
99
|
|
72
100
|
【基本情報】
|
73
101
|
・開発環境 Android Studio
|
@@ -87,8 +115,3 @@
|
|
87
115
|
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.3.0"}
|
88
116
|
を追加しています。
|
89
117
|
|
90
|
-
イメージは、Buttonを押したらTextViewに表示されるようにしたいです。
|
91
|
-
表示させたいAPINameは、何でも大丈夫です。
|
92
|
-
表示させ方を学びたいです。
|
93
|
-
不備が分からず、試行錯誤しましたが分からずにいます。
|
94
|
-
ご回答いただけたら嬉しいです。
|