一个接一个地实现两个自定义对话框的最佳方法是什么?

时间:2011-12-30 00:25:06

标签: android user-interface dialog customdialog

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

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流程之前是如何实现的以及一些伪代码的。

感谢。

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

过去我必须这样做时,我会在对话框的onCancel中打开新对话框。