7

私はコトリンが初めてです。他の非常に興味深いものの中でも、ドキュメンテーション によると、を必要とせずにアクティビティのビューを使用できるAndroid 拡張機能を見つけましたfindViewById

実際には、インポートに次の行を追加するだけで非常にうまく機能します。

import kotlinx.android.synthetic.main.<layout>.*

問題は、2 つの異なるレイアウトに同じ id (つまり、合成プロパティの同じ名前) を持つウィジェットが含まれている場合です。
たとえばTextView、 id を持つ 2 つの異なる がありtxtTitleます。最初のものはアクティビティにあり、2 つ目はアダプター内で使用されるレイアウトに属しているとします。

最初の TextView (アクティビティのもの) でメソッドを呼び出そうとすると、呼び出しが別のビューで行われるかのように、期待される結果が表示されません。これの確認として、 を呼び出すと、予想されたものではなくtxtTitle.parent、他の親と兄弟が表示されます。txtTitle

私は何か間違ったことをしていますか?この問題を回避するために私が見つけた唯一の方法は、すべてのレイアウトで別の名前を使用するか、引き続き使用するfindViewByIdことですが、この言語機能を無駄にするのは残念です...

4

3 に答える 3