2011-08-14 152 views
0

在我的应用程序中,我有2个选项卡。每个标签显示不同的活动。如何重新创建对话框,包括其全部内容?

在activity_1中,我管理全局字符串数组 - 添加和删除选项可用。

在activity_2中我有一个AlertDialog。 该对话框通过调用Activity的对话框函数来创建:onCreateDialog,onPrepareDialog。 该对话框显示多选列表,并且列表的源代码是activity_1管理的全局数组。

问题:我想根据在activity_1中对全局数组所做的更改,在activity_2的对话框中显示更新的列表。问题在于列表是在onCreateDialog中创建的,并且此方法在活动的生命周期中仅被调用一次。

例如:如果全局数组包含:[“Banana”,“Orange”],并且在activity_1中我刚刚添加了:“Apple”,并且我单击了选项卡#2,我想要activity_2打开对话框并显示在对话框列表中:[“香蕉”,“橙色”,“苹果”]。

我试着重新填充列表:onPrepareDialog但没有成功,它只是让我来决定哪些列表项将被检查或不。我应该扩展AlertDialog吗?

任何帮助将不胜感激。

回答

0

您可以使用DialogInterface.OnShowListener在每次显示对话框内容时更新对话框内容。


编辑: 您将不得不实现listadpater并将适配器设置为构建器。


在onPrepareDialog,让列表视图mAlertdlg.getListView()和适配器上调用notifyDatasetChanged()。或者只是再次设置适配器mAlertdlg.getListView().setAdapter(list)

+0

如何在onPrepareDialog中更新列表本身(例如添加一个项目到列表)? – ofirbt

+0

当前我通过在首次创建对话框时调用AlertDialog.Builder.setMultiChoiceItems方法来构建对话框列表。在创建对话框之后,如何再次调用setMultiChoiceItems方法? – ofirbt

+0

在这种情况下,你必须重新创建对话框。 – Ronnie