質問

alertdialogを作成するプロセスまたは順序を知りたいです。私がこの質問をする順序は、AlertDialogのリスト項目をフィルタリングして無効にすると思います。これは動的になければなりません。そこで、onpreparedialog(int id、ダイアログダイアログ)メソッドを上書きすることを選択しました。

最初に、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でいくつかのアイテムをファイリングする方法と、いくつかのアイテムを無効にしますが、表示する方法。

役に立ちましたか?

解決

私の答えが上にあるかどうかを確認してください: 作成後にalertdialog.builderで構築されたalertdialogリストでアイテムの配列を更新する方法 法案に適合します。少なくとも私のために働いています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top