2012-11-26 4 views
14

私はカスタムリストを持っており、表示には数分かかります。問題がどこにあるかを調べるときに、リスト内に1つの項目しかない場合でも、getCount()メソッドは5回呼び出され、getVIew()は一度呼び出され、その後getCountより多くの時間に呼び出されています。 全体的なgetCount()が7回呼び出されています。それは意味がありますか?アダプタのgetCountが何度も呼び出されているのはなぜですか?

ありがとうございました!

+0

コードサンプルを提供しています! –

+0

コードを表示します。そして、私はむしろgetCount()があなたのリストのクロールを –

+0

にスクロールさせることを疑っていますか?より多くのデータを提供 – GamDroid

答えて

9

Adapter.getCount()メソッドへの異なる内部呼び出しをhereで見ることができます。

ただし、このメソッドの呼び出し方法を制御できないことに注意する必要があります。

これは複数回呼び出すことができるため、できるだけ早くその内容を保持する必要があります。 App-USERできupdate its list(そのストレージにデータを追加することができます)いつでも、ザッツ、我々は返す理由を、(storage).size()(要素の総数)ので

+0

申し訳ありませんが、私は "できるだけ速く保つ"部分を理解していませんでした - このメソッドは配列のサイズを正しく返しますか? – user1787773

+1

確かに。しかし、好きなように上書きすることができます。考え方は、何度も呼び出される可能性が高いため、UIスレッドではコストのかかる計算を行わないようにすることです。 – fiddler

+0

私はそれを無効にしませんでした。私は配列サイズを返すだけです。だから私は、listViewを表示するのにかかる時間は、何度も呼ばれているgetCount()とは関係がないということですね。 – user1787773

2

getCount()は何度も呼ばれています。

1

アダプタgetCount()以下の場合にメソッドが呼び出されます。

1)アダプタをリストビュー/グリッドビューに設定するとき。

2)notifyDataSetChangedをアダプタで呼び出すと、

だから、あなたが検索するときに、アダプタを更新し、検索ボタンを持っている必要があり

0

..あなたは上記の例に再帰的に多くの時間やをやっているかもしれませんが、あなたのコードで確認してください。このメソッドは、そのメソッドの内部にsetAdapterがある場合は、getCountが何度も呼び出され、0を返して終了し、表示されません。

関連する問題