我在mainActivity
中有一个对话框提示。如果用户关闭对话框,我需要在fourthFragment
内的一个ListView项目上显示红点(根据下图中的fourthFragment
中的红框)。
问题是只有在我关闭应用程序并重新打开它之后才会更新红点,因为在用户关闭对话框之前已经创建了fourthFragment
。如何在Dialog关闭后刷新/更新fourthFragment
,以便立即显示红点?
简短说明:
mainActivity
:关闭对话框>将showRedDot
=“1”存储到本地db fourthFragment
:onCreate>从本地数据库读取showRedDot
,如果为“1”,则显示红点。 (问题在于,当onCreate时,showRedDot
仍为“0”,因此我需要在对话框关闭后更新fourthFragment
布局。)答案 0 :(得分:1)
您已调用界面来推送对话框的事件关闭(按钮单击)。 像这样:
public interface MyDialogListener {
void OnCloseDialog();
}
public class fourthFragment extend Fragment implements MyDialogListener {
public void SomeMethod() {
MyDialog myDialog = new MyDialog(this, this);
myDialog.show();
}
public void OnCloseDialog() {
// Do update your listview in here( maybe call method initialize data for listview)
}
}
public class MyDialog extends Dialog {
MyDialogListener mListener;
public MyDialog (Context context, MyDialogListener listener) {
super(context, R.style.Dialog);
mListener = listener;
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.CloseButton:
// Push event when Dialog close(or anything)
mListener.OnCloseDialog();
dismiss()
break;
default:
//...
}
}
}
答案 1 :(得分:1)
如上所述尝试接口或广播接收器。如果是,则将片段刷新为
// Reload current fragment
Fragment frg = null;
frg = getSupportFragmentManager().findFragmentByTag("Your_Fragment_TAG");
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.detach(frg);
ft.attach(frg);
ft.commit();