通过各种教程的帮助,我设法编写了一个自定义对话框,显示由本地数据库中的记录填充的列表视图。我已经设置了单击侦听器,并想出了如何通过将光标设置在返回的位置来查找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流程之前是如何实现的以及一些伪代码的。
感谢。
答案 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中打开新对话框。