私のアクティビティにはListViewが含まれています。ダイアログ(Dialogから継承するカスタムダイアログ)を開くと、アダプターのgetView()が体系的に呼び出されるため、どこかでnotifyDataSetChangedが呼び出される必要があります。ダイアログを閉じるたびにリストが更新されないようにします。どうすればこれを防ぐことができますか?
3 に答える
私は同じ問題を抱えていて、それについて私にできることは何もないと思っていました。
ListView に表示されているときに、ビューの 1 つに onClick を追加していました。当時は知りませんでしたが、この View の変更 (getView の後) により、Dialog が表示または閉じられたときに、ListView がアダプターで getView() を呼び出していました。(おそらく視野測定用)
onClick を簡単に再追加できなかったので、コードを変更して getView() 内に onClick を追加し、その後ビューを変更しませんでした。
ビューをまったく変更しなかったため (元の getView() が呼び出された後)、 getView() がダイアログの表示または閉じられたときに呼び出されないことが判明しました。
これで問題が解決するかどうかはわかりませんが、他の人にも役立つ可能性があります。
私にはライフサイクルの問題のように思えます...リストアクティビティから新しいアクティビティを開始してからリストアクティビティに戻るときのように...リスト作成コードがonResumeにある場合、再実行されます。
ここでそれが本当に問題であるとは言いませんが、あなたのコードを見ることなく、私ができる最善の推測です.
通知データセットの変更を設定したくない場合は、データを任意のオブジェクトに一時的に保存できます。更新したい場合は、そのデータを配列リストまたは文字列配列に保存し、listview に渡してから、notifydatasetchanged を呼び出しますこのようにして、必要なときにのみ更新されます。あなたが何をしたいのかを正確に知ることができるように、いくつかのコードを投稿する方が良いでしょう..