在服务器上有一些更新数据库的同步过程,我想在点击对话关闭时刷新父活动以获取视图中的同步值。
我有三个片段 - FragmentA.java
,FragmentB.java
和ragmentC.java
在FragmentA.java
中,我有公共接口OnEntrySelectedListener
,其中包含方法getDialog()
和
其他片段类FragmentB.java
实现此接口,并具有getDialog()
方法的定义。
FragmentA.java
class FragmentA extends Fragment
{
public interface OnEntrySelectedListener
{
getDialog();
}
}
FragmentB.java
class FragmentB extends FragmentActivity implements FragmentA.OnEntrySelectedListener
{
@Override
public void getDialog(Bundle bundle) {
FragmentC cf = new FragmentC();
cf.setArguments(bundle);
cf.show(getSupportFragmentManager(), "dialog");
}
}
FragmentC.java
class FragmentC extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
//some code here
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
view = inflater.inflate(R.layout.shared,container, false);
view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0)
{
getDialog().dismiss(); //Here after dismiss, I want to refresh FragmentA
}
});
return view;
}
现在我要刷新关于FragmentA
的{{1}}。
答案 0 :(得分:0)
您可以向C添加接口和回调以执行以下操作:
@Override
public void onDismiss(DialogInterface dialog) {
if (getActivity() != null && getActivity() instanceof Dismissed) {
((Dismissed) getActivity()).dialogDismissed();
}
super.onDismiss(dialog);
}
public interface Dismissed {
public void dialogDismissed();
}
然后在主活动中,您可以实现界面,当您接到电话时,将其转发给片段A.
你也可以触发FragmentA会听的刷新事件。