ボタンを押すと、基本的なチェックボックスリストが表示されます。以前にアイテムがチェックされている場合は、そのユーザーのチェックボックスをオンにしたいと考えています。onPrepareDialog ListViewが最初の警告ダイアログに作成されません。
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
Log.v("dialog", "On prepare dialog");
ListView lv = ((AlertDialog) dialog).getListView();
if (lv == null){
return;
}
String[] names = Utility.convertStringToArr(currentTravelers, ", ");
for(int i = 0;i < lv.getChildCount();i++){
for(int j = 0;j< names.length;j++){
String tn = lv.getItemAtPosition(i).toString();
if(tn.equalsIgnoreCase(names[j])){
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setItemChecked(i, true);
}
}
}
}
これは私がボタンを選択し、非常に最初の時間を除いて、正常に動作します:私はそうのような「onPrepareDialog」を操作することによって、これを達成しました。何も選択されていないチェックリストが表示されます。キャンセルしてもう一度押すと、正しい名前が確認されます。 ListViewの子カウントをトレースしてみましたが、最初は0になりました。
アラートダイアログが表示されるのは実際にリストビューに表示されるので、正しい名前を確認できます。
オーバーライドしたり適応したりしていないことはありますか?私はここで紛失している。
ありがとうございます!
あなたはcreateDialog(int id)を試しましたか? – eric2323223
この問題を解決するためにどのように使用することをお勧めしますか? – Nick