2011-11-08 10 views
5

カスタムアダプターを使用してListViewを実装しています。パフォーマンスを向上させるために、私はが新たに膨らんで、convertViewがヌルの場合はリターンし、それ以外の場合はリサイクルViewを返します。ViewのsetTagメソッドの使い方は?

このプロセスでは、ViewHolderパターンを使用し、ViewsetTag()メソッドを使用しました。最初はこれは何らかのブックマークだと思っていましたが、私はそれを完全に理解していませんでした。私は彼らがコードでこれを使った別のブログ記事を確認しました。

誰か私にsetTag()メソッドの使用方法を教えてもらえますか?

答えて

13

基本的には、任意の種類のオブジェクトをタグとして保存できます(getTagを呼び出すと元に戻すことができます)。これは単純なIDまたは複雑なデータでもかまいません。このビューに関連付ける情報です。

リストの場合、タグ付きビュー(グループ)のビューへの参照を含む単純なオブジェクトです。したがって、ビューの内容を更新するたびにfindViewByIdに電話する必要はありません。これは単なるパフォーマンスの最適化です。

リストアイテムのデータをビュータグに保存できますか?
いいえ、ビューのリサイクルのために、1000個のリストアイテムに再利用されるビューが10個(たとえば10個)あります。タグにデータを格納することは理にかなっていません。カスタムデータオブジェクトを使用してリストアイテムの状態(おそらく表示されたデータを含む同じ配列)を格納するか、リストアイテムの変更をすぐに維持する方がよいでしょう。

setTag documentationも参照してください。

+0

答えに感謝します。だから私が理解することは、オブジェクトを格納できるということです。それは私たちがリストビューのチェックボックスのチェック状態などのオブジェクトの状態を格納することができますか? – droidsites

+0

答えを更新しました。 – Knickedi

関連する問題