0

ListView からの項目の削除に問題があります。

BaseExpandableListAdapter のサブクラスを使用しています。

問題は、アイテムを削除するときに、基になるデータを変更してから、notifyDataSetChanged を呼び出すことです。すべて問題ないようです。ただし、ListView の更新はすぐには行われません。そのため、誰かがアイテムの一部をチェック/チェック解除し続けると、アダプターに存在しなくなったデータを指します (ただし、ListView には引き続き表示されます)。

アダプターに 3 つのビューと 3 つのアイテム (1、2、3) を持つ ListView があるとします。

  1. 項目 3 を選択し、削除を押します。現在、アダプターには 3 つのビューと 2 つのアイテムがあります

  2. notifyDataSetChanged を呼び出します (更新する時間がないため、ListView にはまだ 3 つのビューがあることに注意してください)。

  3. 3 番目のアイテムを選択し続けて、アダプターに存在しないアイテムを照会します

私の質問は、この状況にどう対処するかです。notifyDataSetChanged が呼び出されてから ListView が更新されるまでの間にギャップがあるようです。そのギャップ内で、アダプターで受信したすべてのリクエストがまだ有効であることを確認する必要があります。

4

1 に答える 1

0

のようにリスト項目を削除してみてください。

filelist.remove("your selected item position".intValue());

これで問題が解決する場合があります。

于 2013-04-11T13:21:49.850 に答える