2
我創建了一個警報對話框,當我按下一個按鈕時,它有一個基本的複選框列表。如果之前已經檢查過這些項目,我希望能夠檢查用戶的複選框。我已經通過操作「onPrepareDialog」像這樣做到了這一點: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);
}
}
}
}
這工作得很好,除了我第一次選擇的按鈕。它只顯示沒有選中任何項目的清單。如果我取消並再次點擊,我會看到選中的正確名稱。我試過追查ListView的子數,並且它第一次出現爲0。
反正有這樣的情況,所以第一次出現警告對話框時,它實際上會填充listview,所以我可以檢查正確的名稱嗎?
有沒有我不重寫或適應?我在這裏不知所措。
謝謝!
你試過onCreateDialog(int id)嗎? – eric2323223
你如何建議我使用它來解決這個問題? – Nick