在while循环中替代AlertDialog.builder?

时间:2014-04-15 14:17:09

标签: android while-loop alertdialog

从我到目前为止所阅读的内容来看,不好的做法/不可能循环并且每次都会弹出AlertDialog。但我还没有找到满足这种功能的替代方案。

示例是:从数据库中获取游标并循环遍历每个项目。循环时在文本字段上进行比较。如果他们彼此不相同,请显示警告以决定做什么,即。追加,覆盖或跳过文本。

感谢

2 个答案:

答案 0 :(得分:2)

您还可以收集信息并使用列表视图,而不是每个冲突提供选项。弹出方式会让人发疯,没有人会多次使用它。

答案 1 :(得分:-1)

循环通过光标读取每个元素(这里我认为它是一个列表)。如果满足触发条件,则将boolean WAITING设置为true,调用showDialog()并最后调用等待循环。这个等待循环将确保父循环等待,直到用户从showDialog()响应膨胀的对话框。

 for(int count =0 ; count<100 ; count ++)
    {
     if(List.get(count).ID != InputValue)
     {
     WAITING=true;
     showDialog(List.get(count).ID , InputValue);
     while(WAITING);
     }
    }

在showDialog()中,首先创建Dialog并将setCancelable()设置为false,以便用户必须单击三个按钮之一(追加,覆盖或跳过)才能禁用该对话框。然后处理这三个事件的单击事件,执行所需的DB操作,最后设置WAITING = false并隐藏对话框。这将恢复父循环。

showDialog(String DB_Value, Input)
{
Show Dialog with option Buttons and Set dialog.setCancelable(false);
On click of any of one of the three buttons(append, overwrite or skip)
  1. do the required DB action
  2. hide the dialog
  3. WAITING= false
}

希望这能帮到你!