質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

解決済

お助けください。Android Studio API

MM_LL
MM_LL

総合スコア2

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

1回答

-1評価

0クリップ

349閲覧

投稿2022/01/17 21:38

編集2022/01/28 06:27
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"と記載し、実行しましたが表示されませんでした。
数日試行錯誤しましたが、まだ分からずにいます
ご教授いただければ幸いです。
よろしくお願いします。

URL

【基本情報】
・開発環境 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"}
を追加しています。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。