0

ダイアログ(AlertDialog)の後にアプリケーション設定(SharedPreferences)を保存し、次の方法でListAdapterのアイテムのデータを更新する理由を誰かが説明してくださいmListItems.get(viewPosition).setValue(prefsIntValue);mListItems- はメインアクティビティのメンバーです)。ダイアログウィンドウを閉じた後、ListViewのビューが更新され、メソッドで同じことをしようとするとonActivityResult(他のアクティビティの完了時にデータを更新する)、何も起こりません。つまり、ビューは更新されません。ここにnotifyDataSetChangedの例がありますが、最初のケース(ダイアログボックスの後)が機能するのはなぜですか!?

UPD:notifyDataSetChangedメソッドでリストデータを変更した後に呼び出すとonActivityResult役立ちました! しかし、誰か、最初のケースで設定を保存するときになぜうまくいったのか説明してください!

4

1 に答える 1

0

AlertDialog ウィンドウを閉じた後にメソッドonWindowFocusChanged http://androidxref.com/4.2_r1/xref/frameworks/base/core/java/android/widget/AbsListView.java#2646が呼び出されたため、答えが見つかりました。レイアウト リスト ビューが再描画されています。上記のメソッドを呼び出すlayoutChildrenと、すべての魔法が発生します。

于 2012-12-31T14:06:42.567 に答える