我正在使用对话框对应用进行编码。我读到嵌套对话框是不明智的,所以我设置了一个接口来返回< NumberPickers >中所选的值strong> AlertDialog 返回到首先调用 DialogFragment 的活动。
此活动然后调用另一个 DialogFragment ,其对话框让用户有机会确认他在第一个对话框中选择的内容< / strong>即可。如果他确认,那么意图会将他带到下一个活动,但如果没有,我希望他能够返回到之前的实例第一个对话框并进行必要的更改。
我尝试从第一个对话框上的肯定按钮实现的代码中删除命令dialog.dismiss()
,但是当我离开时无效第二个对话框第一个对话框消失了。
然后我尝试了#34; pop&#34;带有 FragmentManager 的 backstack ,希望对话框的前一个实例重新出现。我错了。
builder.setNegativeButton(R.string.reset_duration, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
//return to the previous instance of SDDialogFragment
int count = getFragmentManager().getBackStackEntryCount();
if (count != 0) {
getFragmentManager().popBackStack();
}
我认为我的错误有两点:
a)我对对话如何保持活跃状态没有真实的理解。
b)我将片段的实例与对话框的实例混淆。
有人请告诉我是否可以做我想做的事情,或者,我是否应该考虑通过使用捆绑转移价值并忘记返回之前的实例?感谢:)
答案 0 :(得分:0)
对话框无法保持活动状态,但您可以在onDismiss()中恢复对话框。
试试这个:
make Your Activity实现onDismissListener
在显示您的对话框之前设置一个解雇监听器yourDialog.setOnDismissListener(this);
然后您将在onDismiss(DialogInterface对话框)
中返回您的对话框