【发布时间】:2014-05-06 15:40:31
【问题描述】:
我有一个小问题。 目前我有一个片段。 分离时,我想向用户显示您是否要保存更改。 但是我想在用户选择一个选项后调用 super.onDetach() 。我试图在一个选项之后调用 super.onDetach() 但是我得到一个异常,即分离时不调用 super.onDetach() 。有什么想法吗?
提前致谢
这是我的代码:
@Override
public void onDetach() {
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
if(attachProfiel){
FragmentProfiel.updateProfiel();
}
if(attachDiagnose){
FragmentDiagnose.updateDiagnose();
}
if(attachAndere){
FragmentAndere.updateAndere();
}
break;
case DialogInterface.BUTTON_NEGATIVE:
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("Save changes?").setPositiveButton("Ja", dialogClickListener)
.setNegativeButton("Nee", dialogClickListener).show();
}
OnDestroyView :
@Override
public void onDestroyView() {
new ExitFragment(getActivity()).show(getFragmentManager(), "MyDialog");
super.onDestroyView();
}
【问题讨论】:
-
你在 onAttach() 中做了什么工作吗?
-
不,不在那个片段中。但是我在布局中有 3 个片段使用 onAttach(向主片段发出信号以了解片段是否可以从 3 个片段中获取值)
-
您实际上可以在 onDestroyView() 中调用对话框片段,而不是 onDetach()。一旦你的片段被事务替换,这可以确保保存状态。
-
试试看,如果有效,请告诉我?
-
我刚刚尝试过并创建了一个 exitFragment 然后在 OnDestroyView 上调用该片段,然后我执行 super.OnDestroyView(); .碎片仍然立即分离。检查帖子以获取 OnDestroyView 代码。
标签: android android-fragments detach