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

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

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

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Kotlin

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

解決済

jsonデータクラスの扱いがわからない

mokimokio
mokimokio

総合スコア53

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Kotlin

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

1回答

0評価

0クリップ

159閲覧

投稿2022/05/24 02:34

kotlinでアンドロイドスタジオを使ってアプリ開発の勉強しています。

php APIにAndroidアプリから値を送信して
返ってきたAPIのjsonデータの一つの値をアンドロイド画面のtextviewに表示させたいと思っているのですがかないません。
ちなみにtextviewに表示させたい値は"kind"の1つめ。『文化遺産』です。

どなたかご教授よろしくお願いいたします。

Post.kt

data class Post(val btnId: String, val id: String, val time: String, val code: String)

sample.kt

class sample : ArrayList<sampleItem>()

sampleItem.kt

data class sampleItem( val description: String, val imageName: String, val kind: String, val name: String )

MyService.kt

import retrofit2.Call import retrofit2.http.Body import retrofit2.http.POST interface MyService { @POST("posts") fun post(@Body post: Post): Call<sample> }

MainActivity.kt

class MainActivity : AppCompatActivity() { private val retrofit = Retrofit.Builder().apply { baseUrl("https://~~~~~~~~~~~~~~~~~/sample.php/") addConverterFactory(GsonConverterFactory.create()) }.build() private val service = retrofit.create(MyService::class.java) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_activity_main) val logu : TextView = findViewById(R.id.logu) //ボタンを押した時の処理 val btn : Button = findViewById(R.id.btn) btn.setOnClickListener { val data = Post(btnId = "inBtn", id = "1111", time = "12:34" , code = "22") service.post(data).enqueue( object : Callback<sample> { override fun onResponse(call: Call<sample>, response: Response<sample>) { Toast.makeText(this@MainActivity, "通信完了", Toast.LENGTH_SHORT).show() runOnUiThread { logu.setText(response.body()?.⭐️なんと書けば呼び出せるのかわからない⭐️) } } override fun onFailure(call: Call<Result>, t: Throwable) { Toast.makeText(this@dakoku_page, "通信エラー", Toast.LENGTH_SHORT).show() Log.e("TEST", "通信エラー", t) } }) } } }

sample.php

<?php // 文字化け対策 $options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'"); // PHPのエラーを表示するように設定 error_reporting(E_ALL & ~E_NOTICE); $json = file_get_contents('php://input'); $data = json_decode($json, true); if ($data["btnId"] == "inBtn") { if ($data["time"] == "12:34" && $data["id"] == "1111" && $data["code"] == "22") { print'['; print'{'; print'"name": "アンコール・ワット",'; print'"imageName": "angkor",'; print'"description": "アンコール・ワットは、カンボジア北西部に位置するユネスコの世界遺産であるアンコール遺跡の一つであり、その遺跡群を代表する寺院。ヒンドゥー教寺院として作られたが、16世紀後半に仏教寺院に改修され、現在も上座部仏教寺院となっている。",'; print'"kind": "文化遺産"'; print'},'; print'{'; print'"name": "ホースシューベンド",'; print'"imageName": "horseshoebend",'; print'"description": "ホースシューベンド(Horseshoe Bend)とは、アメリカ合衆国アリゾナ州ページの町付近にある、コロラド川が蹄鉄(horseshoe)の形に穿入蛇行している場所の名前である。グレンキャニオンダムとパウエル湖から少し下流、ページの南約6キロメートルに位置している。国道89号線から1.2キロメートル歩くとたどり着ける。",'; print'"kind": "自然・公園"'; print'}'; print']'; }

jsonの中身を見やすく

[ { "name": "アンコール・ワット", "imageName": "angkor", "description": "アンコール・ワットは、カンボジア北西部に位置するユネスコの世界遺産であるアンコール遺跡の一つであり、その遺跡群を代表する寺院。ヒンドゥー教寺院として作られたが、16世紀後半に仏教寺院に改修され、現在も上座部仏教寺院となっている。", "kind": "文化遺産" }, { "name": "ホースシューベンド", "imageName": "horseshoebend", "description": "ホースシューベンド(Horseshoe Bend)とは、アメリカ合衆国アリゾナ州ページの町付近にある、コロラド川が蹄鉄(horseshoe)の形に穿入蛇行している場所の名前である。グレンキャニオンダムとパウエル湖から少し下流、ページの南約6キロメートルに位置している。国道89号線から1.2キロメートル歩くとたどり着ける。", "kind": "自然・公園" } ]

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Kotlin

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