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

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

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

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

Kotlin

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

Q&A

1回答

673閲覧

RecyclerViewの特定のアイテムのレイアウトをUIから取得する方法

_kei

総合スコア26

Android

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

Kotlin

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

0グッド

0クリップ

投稿2021/07/31 07:28

前提・実現したいこと

kotlin

1data class Item( 2 val id: Int, 3 val name: String 4)

という型を要素に持つリストをRecyclerViewで表示しています。

このとき、UI(Activity or Fragment)からこのリストのある要素のnameを変更するために、レイアウトを取得したいです。どのようにすれば、実現可能でしょうか。

具体的には、

  1. name == "Ken" を満たすItem がRecyclerViewで表示しているリスト内にあるかチェックする。(idで要素を特定してもよい、ここでnameで特定していることはスルーしてほしいです。)

  2. 1にて要素があった場合、そのアイテムのレイアウト(list_item.xml)を取得する。

  3. list_item.xml内のnameを表示しているTextViewのTextを"Kei"に変更する。

ということが実現したいです。このとき、1にて、collectionに用意されている関数を使用してリスト内の該当アイテムを取得することは実現できたのですが、そこからそのアイテムを表示しているlist_item.xmlを取得する方法が分かりません。(= 2ができません)3はhogehoge.text = "Kei"で実現できそうです。

レファレンスを参照したところ、RecyclerViewのレイアウトを取得する関数が存在せず、どのように2を実現すればよいか分かりません。アドバイスよろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/07/31 07:58

RecyclerView は画面に表示されている分の view しか作らないので、そもそも存在しない可能性があります。 というか、目的の Item をレイアウト (view) から取得しようという考え方が良くないですね。Item のリストは adapter が管理してるはずなので、view を経由せずに探せるはずですし、Item の情報を更新した場合は adapter の notifyItemChanged などで通知すれば表示も更新されます。
jimbe

2021/07/31 09:57

一通りの(回答者が実際に動かせるような)コードをご提示頂ければ、どうするべきかの具体的な回答がつきやすいかと思います。
退会済みユーザー

退会済みユーザー

2021/08/06 07:09

list_item.xmlがどんなものなのかは知りませんが OnItemClickListenerを使ってみてはいかがでしょうか 試せる環境にいないのでわかりませんが OnItemClickListener{_,_,position,_-> when(view.id){ } } 参考になるかはわかりませんがご参考までに
guest

回答1

0

list_item.xmlがどんなものなのかは知りませんが
OnItemClickListenerを使ってみてはいかがでしょうか
試せる環境にいないのでわかりませんが
OnItemClickListener{,,position,_->
when(view.id){
}
}
参考になるかはわかりませんがご参考までに

投稿2021/08/06 07:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問