17

Androidでカスタマイズされたものを作成するときadapter、クラスを拡張してメソッドを実装するクラスを作成する必要があることがわかりました。ListViewArrayAdaptergetView(..)

それはすべて問題ありませんが、メソッドの呼び出しと実行のシーケンスを知りたいです。つまり、コードのどのポイントでgetView()が呼び出されていますか?

4

3 に答える 3

13

ArrayAdapter の getView() が複数回呼び出されています....

  1. 新しい行が追加されたときのように...
  2. リストビューを上にスクロールして下にスクロールします....
  3. リストが変更されていない場合..

このリンクを参照してください Android カスタム ArrayAdapter getView メソッドが複数回呼び出されました - 動的 TextView 値のリセット

于 2012-04-15T08:27:35.953 に答える
9

Android ドキュメントから - Adapter オブジェクトは、AdapterView (この場合は ListView など) とそのビューの基になるデータとの間のブリッジとして機能します。アダプターは、データ項目へのアクセスを提供し、データ セット内の各項目のビューを作成する役割も果たします。

そのため、ListView が特定のデータ行を表示する必要があるときはいつでも、getView() メソッドを介してその位置のデータに対応するビューを提供するように関連付けられたアダプターに要求します。これは、画面上でビューを更新する必要があるときはいつでも発生する可能性があります (例: 作成/スクロール中など)。

アプリ開発者は、アダプターで具体的な getView() 実装を提供する限り、getView() が呼び出される正確な時点を気にする必要はありません。最適なパフォーマンスを得るには、メソッドが効率的であることを確認してください (サムネイルなどはバックグラウンド スレッドにロードする必要があります)。

于 2012-04-15T08:29:25.937 に答える
0
getView(int position, View view, ViewGroup parent) 

のために呼び出されます

List of Objects

使用する要素数の

getItem(int position)

私たちのリストの長さ

そのため、リスト全体にリストからのレイアウトとデータが割り当てられるまで、何度も呼び出されます。

于 2012-04-15T08:27:09.527 に答える