0

ユーザーが追加したプロファイルのリストを表示するリストビューがあります。プロファイルが存在しない場合は、リストビューの可視性を「gone」に設定します。

リストビューに、ユーザーがプロファイルを削除できるコンテキストメニューがあります。これを行うとき、プロファイルを削除することを確認するためのダイアログウィンドウを表示します。

ユーザーがボタンをタッチしてダイアログで「はい」を選択すると、すべてが正常に機能します。

ユーザーがトラックボールを使用して「はい」を選択してから画面をタッチすると、アプリがクラッシュします。

リストビューの可視性を「gone」に設定するコード行をコメント化することで、クラッシュを防ぐことができます。クラッシュの原因が気になります(理解したい)。

エラーは私には誤解を招くようです。java.lang.IllegalStateException:アダプターの内容は変更されましたが、ListViewは通知を受け取りませんでした。アダプタのコンテンツがバックグラウンドスレッドからではなく、UIスレッドからのみ変更されていることを確認してください

4

1 に答える 1

0

ListViewが使用していたアダプターは、データが変更されたことを通知する必要がありました(notifyDataSetChanged())。トラックボールを使用する場合とタッチを使用する場合で動作が異なる理由はまだわかりませんが、アダプターがどのように機能するかについてはよく理解しています。

于 2012-02-22T23:37:08.773 に答える