2011-09-11 5 views
0

データ(タイトル、日付、イメージ)をリストビューにバインドするカスタムアダプタがあります。すべて正常に動作しますが、リストビューをスクロールすると、そのデータがリストビューに再バインドされたように見えます。データの移入や複製は行いませんが、同じデータ位置への書き込みが行われます。 それは、特に画像を表示するときに、リストビューのスクロールがスムーズでないために非常に面倒です。 リストビューでデータを再バインドするためにアダプタを停止する方法はありますか?カスタムアダプタは、スクロール時にリストビューにデータを再バインドします

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

答えて

0

したがって、リストビューでデータを再バインドするためにアダプタを停止できますか?

ListViewをスクロールできないようにすべてのユーザーの指を壊します。

また、bindView()の方法、またはバインディングに使用している他のもの(例:ViewBinder)で効率的な仕事をしてください。たとえば、ビットマップのキャッシュを(SoftReferencesなどを介して)維持し、ディスクから再ロードする必要がないようにします。

+0

パブリックビューbindData(ビュービュー、INT位置){ \t IF(data.get(位置)== NULL){ \t \tリターン図です。 \t} ビデオアイテム= data.get(位置); aq = new AQuery(view); aq.id(R.id.title).text(item.getTitle()); aq.id(R.id.date).text(item.getDate()); aq.id(R.id.thumb).image(item.getImage()、false、true、100、R.drawable.icon); リターンビュー。 } – Maverick

+0

上記は2つのテキストビューと1つのイメージビューに値を設定するコードです。私はAndroidのクエリライブラリを使用しています。このコードは、リストビューをスクロールするたびに実行されます.. – Maverick

+0

@Maverick:もちろん、リストビューをスクロールするたびに実行されます。これが 'AdapterView'の背後にあるポイントです。 Traceviewを使用して、コード内のどこが遅いのかを具体的に見て、それらを修正してより速く実行させるようにします。 – CommonsWare

関連する問題