AlertDialog を作成するプロセスまたは順序を知りたいです。この質問をする順序は、AlertDialog のリスト項目をフィルタリングして無効にすることです。これは動的でなければなりません。そこで、onPrepareDialog(int id, Dialog dialog) メソッドを上書きすることにしました。
まず、onCreateDialog(int id) メソッドで AlertDialog を作成します。
protected Dialog onCreateDialog(int id) {
--------
builder.setMultiChoiceItems(itemsId, checkedItems, mListenter);
---------
}
protected void onPrepareDialog(int id, Dialog dialog) {
-----------
ListView mListView = ((AlertDialog)dialog).getListView();
mListView.setItemChecked(0, false);
mListView.invalidateViews();
View view = mListView.getChildAt(0);
-----------
}
しかし、これらのコードは機能しません。前にチェックした後、最初のアイテムはまだチェックされていました。そして、初めてダイアログを表示するときに ChildView が null になるのはなぜですか? ListView でアイテムをファイリングする方法と、一部のアイテムを無効にして表示する方法。