package com.test.nhkapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.text.method.ScrollingMovementMethod import android.widget.Button import android.widget.TextView import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.json.JSONException import org.json.JSONObject import java.io.BufferedReader import java.io.IOException import java.io.InputStreamReader import java.net.URL class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val apiKey = "******" val mainUrl = "https://api.nhk.or.jp/v2/pg/list/130/g1/2022-01-29.json" val tv:TextView = findViewById(R.id.tv) tv.setMovementMethod(ScrollingMovementMethod()) val btn:Button = findViewById(R.id.btn) btn.setOnClickListener { val nhk = "$mainUrl?key=$apiKey" nhkTask(nhk) } } private fun nhkTask(nhk:String) { lifecycleScope.launch { val result = nhkBackgroundTask(nhk) nhkJsonTask(result) } } private suspend fun nhkBackgroundTask(nhk: String): String { val response = withContext(Dispatchers.IO) { var httpResult = "" try { val nhkObj = URL(nhk) val br = BufferedReader(InputStreamReader(nhkObj.openStream())) httpResult = br.use { it.readText() } } catch (e: IOException) { e.printStackTrace() } return@withContext httpResult } return response } private fun nhkJsonTask(result: String) { val tv:TextView = findViewById(R.id.tv) try { val jsonObj = JSONObject(result) val nhkAry = jsonObj.getJSONArray("g1") val nhkObj = nhkAry.getJSONObject(0) val nhk = nhkObj.getString("title") tv.text = nhk } catch (e: JSONException) { e.printStackTrace() } } }
【NHK 番組表API】を作成にあたり、不明点がありご回答いただきたいです。
解決策を教えていただきたいです。
下記URL貼っていますので、確認いただきたいです。
Buttonを押したら、番組名と開始時間、終了時間が出る番組表アプリを作りたいです。
現在"title"と記載し、実行しましたが表示されませんでした。
数日試行錯誤しましたが、まだ分からずにいます
ご教授いただければ幸いです。
よろしくお願いします。
【基本情報】
・開発環境 Android Studio
・言語 Kotlin
・Windows10
【接続環境】
AndroidMaifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
activity_main.xml
TextView、Buttonのみになります。
build.gradle(Module:NHK_App.app)
dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.3.0"}
を追加しています。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/27 09:21