gpt4 book ai didi

android - onPrepareDialog ListView 未在第一个警报对话框创建时填充

转载 作者:行者123 更新时间:2023-11-29 02:11:00 26 4
gpt4 key购买 nike

我创建了一个警告对话框,当我按下一个按钮时,其中有一个基本的复选框列表。如果之前已经检查过这些项目,我希望能够为用户检查复选框。我通过像这样操作“onPrepareDialog”来完成这个:

@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);
}
}
}
}

这工作正常,除了我第一次选择该按钮。它只会向我显示未选择任何内容的 list 。如果我取消并再次点击它,我将看到检查的正确名称。我已尝试追踪 ListView 子项计数,但第一次显示为 0。

是否有任何解决办法,以便第一次出现警报对话框时它实际上填充了 ListView ,以便我可以检查正确的名称?

有什么我没有覆盖或调整的吗?我在这里不知所措。

谢谢!

最佳答案

好吧,我可以通过在填充 ListView 之前延迟发布来解决这个问题:

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() {
public void run() { //code to manipulate goes here
}}, 100);

这基本上让它等待 100 毫秒,这似乎足以让对话框信息加载到 ListView 中。有谁知道更有效的方法吗?

关于android - onPrepareDialog ListView 未在第一个警报对话框创建时填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7403496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com