2011-08-17 75 views
8

私はListViewに取り組んでいます。私はちょうどgetView()が呼ばれたときを知りたい。アダプタが設定されると呼び出されますか? getView()メソッドの実行が完了すると、「アダプタの設定」の横の行が呼び出されますか?ListViewのgetView()メソッドはいつ呼び出されますか?

getView()の実行が終了すると、どの行が実行されるのか教えてください。

それは私にとって大きな助けになるでしょう。事前に

おかげで、 Vaishnvai

+0

コードを投稿できますか? –

答えて

11

getView()はあなたのアダプタに渡すリストの各項目に対して呼び出されます。 アダプタを設定すると呼び出されます。 getView()が終了すると、setAdapter(myAdapter)の次の行が呼び出されます。 getView()をデバッグするには、getView()にステップインすることができないため、ブレークポイントを切り替える必要があります。setAdapter(myAdapter)getView()は、notifyDataSetChanged()の後にスクロールして呼び出されます。

+0

ありがとうございました。私はgetView()メソッドの変数にいくつかの値を設定しました。 setAdapter()メソッドの次の行にそれらを表示すると、まだ0が表示されます。これらの変数はアクティビティ全体にアクセス可能です。それを助けることができます – Vaishnavi

+3

ちょっと。getView()がexcecutedされると、コントロールはsetAdapter()の隣のステートメントに戻りません。実際、setAdapter()が呼び出されると、コントロールはgetView()に直接行きません。ほとんどのステートメントは終了した後、コントロールはgetView()に移動します。 Imは文字通りこの動作と混同しています。助けてください。 – Vaishnavi

+1

こんにちは。つまり、リストビューに表示する項目が100個ある場合、getView()メソッドは100回呼び出されます。 –

7

さらに明確にするために、新しい項目が画面に表示されるたびに、表示された項目の数でgetView()が呼び出されます。つまり、100万のアイテムがあり、15アイテムが画面に収まる場合、getViewは15回呼び出されます。上/下にスクロールして新しい項目が表示されるたびに、新しい項目に対してgetView()が呼び出されます。そして、あなたはリサイクルの仕組みにも気づくべきです。各アイテムタイプのテンプレートアイテムレイアウトを保持し、このビューでconvertViewパラメータとしてgetView()メソッドを送信するので、レイアウトインフレーションを防ぐために使用できます。

+0

こんにちは...私はスクロールダウン、getView()メソッドは、ユーザーに表示される各リスト項目が呼び出されますか?また、一度に10個の項目しかモバイル画面に表示できない場合、最初はgetView()メソッドが10回呼び出されます。私は正しく考えていますか? ...ありがとう。 –

+0

@ TheHunterはい、そうです。 –

+0

getView()が呼び出されるたびにconvertView == nullが返されますか? –

関連する問題