Android:强制重新创建对话框

时间:2011-11-18 18:42:03

标签: android dialog recreate

我正在使用android dateslider自定义对话框类,以便让用户编辑表格的几个不同行的日期。

datelider允许您限制用户仅选择您可以指定的最短日期和最长日期之间的日期。

每个表行都需要使用日期列表将用户限制为不同的最小日期和最大日期,但是因为您在onCreateDialog方法中指定了最小和最大日期,所以我需要能够在用户点击时动态修改这些日期这一行。

我尝试在用户单击对话框时再次调用onCreateDialog方法,然后运行它,但是不考虑新的限制,这表明仍然使用了最初创建的对话框。

我将如何实现目标?

谢谢, 最大

1 个答案:

答案 0 :(得分:1)

如果您在使用对话框之前需要更改对话框,则需要使用onPrepareDialog

<强>更新

传递给onPrepareDialog的对话框是在onCreateDialog中创建的对话框。根据需要修改它(不要创建新的)。您可能必须在自定义对话框类中添加一些setter:

protected void onPrepareDialog(int id, Dialog dialog) {
    switch(id) {
    case YOUR_DIALOG_ID:
        YearMonthDayHourMinute myDialog = (YearMonthDayHourMinute) dialog;
        myDialog.setInitialTime(initialTime);
        myDialog.setMinTime(minTime);
        myDialog.setMaxTime(maxTime);
        break;
    }
}