前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

Viewの使い回しとIDについて

  • 1つの画面で1つのViewを動的に生成するなどして繰り返し使いたい場合、IDの重複に注意する
  • Fragmentが再描画される際、ViewのIDを元に値を復旧させる。
  • IDが重複していると同じIDを持つView全てに値が設定されてしまう。
  • 親ViewのIDが異なっていても駄目

対策

  • リソースでIDを定義する
  • include時にIDを定義する(IncludeするViewの子ViewでIDを考慮する必要がない場合)
  • generateViewIdを使う(API Level 17から)

自分で名前つけられるのでリソースIDが無難かな。
でもsetIdする対象のViewを取り出すためにfindViewByIdするのはなんか違う。

OSがViewの復旧を試みるのはViewをFieldに持った場合のみかも。