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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Kotlin

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

解決済

forEachの変数を処理の中で使いたい

m-mega
m-mega

総合スコア54

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Kotlin

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

3回答

0評価

1クリップ

236閲覧

投稿2022/06/30 04:49

やりたいこと

ListViewに表示するmutableMapの内容を、forEachでループさせて作成したいです。
現在、下記のコードでListViewに画像と配列の文字列を表示することができています。

FishListActivity.kt

kotlin

... class FishListActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_fish_list) // 魚のリスト val all_fish_list = listOf( "bora", "buri", "iwana", "katsuo", "maguro", "sanma" ) // 魚の表示名とサイズ記録用マップ val bora = mutableMapOf("name" to "ボラ", "MAX" to 10, "MIN" to 10) val buri = mutableMapOf("name" to "ブリ", "MAX" to 10, "MIN" to 10) val iwana = mutableMapOf("name" to "イワナ", "MAX" to 10, "MIN" to 10) val katsuo = mutableMapOf("name" to "カツオ", "MAX" to 10, "MIN" to 10) val maguro = mutableMapOf("name" to "マグロ", "MAX" to 10, "MIN" to 10) val sanma = mutableMapOf("name" to "サンマ", "MAX" to 10, "MIN" to 10) val data = mutableListOf( mutableMapOf ("image" to R.drawable.bora, "name" to "ボラ", "MAXrecord" to String.format(resources.getString(R.string.fish_MAX_size), bora["MAX"]), "MINrecord" to String.format(resources.getString(R.string.fish_MIN_size), bora["MIN"])) ) // リストに表示するデータを作成 all_fish_list.forEach{ name -> data.add( mutableMapOf ("image" to R.drawable.bora, "name" to bora["name"].toString(), // ↑でnameをboraの部分に当てはめることができないか? "MAXrecord" to String.format(resources.getString(R.string.fish_MAX_size), bora["MAX"]), "MINrecord" to String.format(resources.getString(R.string.fish_MIN_size), bora["MIN"])) ) } // ListViewにデータをセットする val list = findViewById<ListView>(R.id.fishList) list.adapter = SimpleAdapter( this, data, R.layout.list_item, arrayOf("image", "name", "MAXrecord", "MINrecord"), intArrayOf(R.id.image, R.id.name, R.id.MAXrecord, R.id.MINrecord) ) } }

上記のコードにて、「R.drawable.bora」の「bora」の部分をforEachのnameに置き換えたいです。
同様に、「bora["name"]」の「bora」の部分も置き換えたいです。

わからないこと1

「bora」の部分を「name」の値に置き換える方法が分かりません。
文字列のように「R.drawable.${name}」としましたがうまくいきませんでした。

該当箇所

kotlin

all_fish_list.forEach{ name -> data.add( mutableMapOf ("image" to R.drawable.bora, "name" to bora["name"].toString(),

わからないこと2

「val data」は、中身が空の状態で宣言したいのですが、「mutableLitst<mutableMapOf>()」
と宣言することはできませんでした。
mutableMapを型としてとる中身が空のmutableListを宣言するにはどうすれば良いのでしょうか。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Kotlin

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