[英]Refresh the Fragment on dismiss of Dialogue fragment
服務器上有一些同步過程可以更新數據庫,我想在單擊對話框時單擊以刷新父活動,以在視圖中獲取同步值。
我有三個fragments- 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");
}
}
片段C.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
上的解雇FragmentC
。
您可以向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監聽的刷新事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.