【问题标题】:What is the best way to implement two custom dialogs, one after the other?一个接一个地实现两个自定义对话框的最佳方法是什么?
【发布时间】:2011-12-30 00:25:06
【问题描述】:

通过各种教程的帮助,我设法编写了一个自定义对话框,该对话框显示了一个由本地数据库中的记录填充的列表视图。我已经设置了单击侦听器,并弄清楚了如何通过将光标设置在返回的位置等来检索单击的列表视图项的记录...现在我想要做的是,在单击一个项目时关闭此对话框,并且自动打开一个新对话框,其中光标的内容作为要从中重新填充新列表视图的表的名称。我想知道是否有人知道在应用程序结构方面这样做的最佳方法。 目前,我正在调用我的对话框以显示在我的活动中,如下所示:

public void onClick(View view) {
    switch(view.getId()) {
    case R.id.pickerbutton:
        showDialog(DIALOG_PICK_CATEGORY);
        break;
    }
}
protected Dialog onCreateDialog(int id) {
    dialog = null;
    switch(id) {
    case DIALOG_PICK_CATEGORY:
        CustomDialogList.Builder customBuilder = new
            CustomDialogList.Builder(SendCookieActivity.this);
        customBuilder.setTitle(R.string.category);
        dialog = customBuilder.create();

        break;
    }
    return dialog;
}

显示此对话框后,用户从 CustomDialogList 对话框中选择一个类别。我很难考虑如何制作它,以便在选择类别后,此对话框被关闭(或看起来已被关闭)并出现带有新填充项目的同一个对话框(或者也可以是一个全新的对话框) .当有人按下后退按钮时,会显示上一个对话框。把它想象成一个文件浏览器,但只有两个层次的深度。我想继续使用我的 CustomDialogList,因为我已经自定义了它的外观以匹配我的应用程序中的所有其他内容。也许除了代码之外或代替代码可以帮助我解决这个问题,可能是一些关于这种类型的 UI 流程之前如何实现的图表以及一些伪代码。

谢谢。

【问题讨论】:

    标签: android user-interface dialog customdialog


    【解决方案1】:

    假设您的自定义对话框扩展了Dialog(或其子类之一)。让您的Activity 实施DialogInterface.onDismissListener。然后在您创建对话框后...

    dialog = customBuilder.create();
    

    ...在显示之前使用dialog.setOnDismissListener(this);

    您的Activity 必须执行...

    @Override
    public void onDismiss(DialogInterface dialog) {
        // Identify which dialog was dismissed and do something
    }
    

    【讨论】:

      【解决方案2】:

      当我过去不得不这样做时,我让对话框的 onCancel 打开新对话框。

      【讨论】:

        猜你喜欢
        • 2023-01-19
        • 2021-08-21
        • 1970-01-01
        • 1970-01-01
        • 2021-10-02
        • 2013-06-05
        • 2018-08-20
        • 1970-01-01
        相关资源
        最近更新 更多