2014-06-19 35 views
1

我有活动A,它具有带自定义适配器的ListView。解除对话框后更新UI

自定义适配器(适用于每个列表视图项目)具有调用自定义对话框的按钮。

在此对话框中正在执行的操作,其响应我要调用上的活动A.

UI更新

这是我的简历上的活动代码:

@Override 
public void onResume() 
{ 
    super.onResume(); 
    setUI(); 
} 

但是当我打电话

dialog.dismiss(); 

该对话框关闭时没有活动调用一个OnResume方法benig。

我该如何捕获和更新活动ui?

+0

您可以使用[onDismmiss()](http://stackoverflow.com/questions/18830899/ android-wait-for-user-input-at-alertdialog-to-proceed /18831531#18831531) – codeMagic

+0

但是我的对话框是在适配器类中而不是活动类 –

回答

-2

其实它很容易 - 你可以施放背景下的适配器里面含有活性电话:

ActivityName activity = (ActivityName)con; 
activity.setUI(); 
+0

它更好地使用回调/侦听器 – Linxy

5

您可以设置OnDismissListener到您的对话框来实现这一目标:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setOnDismissListener(listener); 
... 
Dialog dialog = builder.create(); 

你可以让你的活动教学贯彻DialogInterface.OnDismissListener并将其设置为监听器,使他们获得在法onDismiss(DialogInterface dialog)通知。在那里,你可以更新你的用户界面。

+0

但我的对话框在适配器类内而不是活动类 –

+0

那么,它不一定是您的活动,您还可以让您的适配器实施OnDismissListener并将其添加为侦听器。 – tknell

+0

请记住,这需要一个最小API级别17 ..检查此其他解决方案低于17 API级别.. http://stackoverflow.com/questions/13933077/android-setondismisslistern-for-api-lower-than-17 – json001