是否可以显示多个对话框?有没有像对话Z级? 我正在使用DialogFragment用户选择元素,当他确认他的选择时,它被保存到数据库并在服务器上发送。如果保存操作失败,我想通知用户...另一个对话框有可能吗?并且它会不会清除我的第一个对话框? 在此先感谢。Android:我可以显示多个对话框吗?有没有像对话Z级?
5
A
回答
4
实际上,可以在另一个内部显示多个对话片段。 z顺序取决于它们的创建顺序。
在下面的代码中有一个FragmentActivity的例子,其中包含您需要的行为。
public class MyActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
//...
}
public void onSave(View view) {
Intent intent = getIntent();
this.setResult(RESULT_OK, intent);
finish();
}
public void onCancel(View view) {
finish();
}
public void SelectWeekDay(View view) {
DialogFragment selectWeekDayFragment = new SelectWeekDayFragment();
selectWeekDayFragment.show(getSupportFragmentManager(), "WeekDayDialog");
}
public class SelectWeekDayFragment extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.week_day_dialog, container, true);
Button saveButton = (Button) view.findViewById(R.id.button_save);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CheckBox checkboxMonday = (CheckBox) getDialog().findViewById(R.id.checkBox_monday);
if (!checkboxMonday.isChecked()) {
DialogFragment saveErrorFragment = new SaveErrorFragment();
saveErrorFragment.show(getSupportFragmentManager(), "SaveErrorFragment");
}
else {
SaveToDb(); //Perform actions to store on db or what you wish
dismiss();
}
}
});
Button cancelButton = (Button) view.findViewById(R.id.button_cancel);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
return view;
}
}
public class SaveErrorFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setMessage("You must select Monday").setPositiveButton("Ok", null).create();
}
}
}
1
我的建议是在对话框中使用带有ViewFlipper的自定义布局,以便您可以在进度条或任何不同的布局之间轻松切换。如果你想显示多个对话框,我的猜测是,Z顺序取决于它们创建的顺序,最上面显示的是最新的Beeing。
0
但是,您通常可以稍微小心。使用对话框的生命周期来避免副作用。例如:您可以对像onStop()这样的函数进行检查,以查看子对话框是否已打开,如果是,则关闭它。
理想情况下,减少对话层的数量是理想的,只要它是理智的(例如:最终完成数百行代码)
相关问题
- 1. 对话框没有显示
- 2. Android对话框没有显示
- 3. Android:没有显示对话框的Asynctask
- 4. 没有显示Android对话框
- 5. 没有显示Android警报对话框
- 6. 我可以在Android中的MapActivity中显示对话框吗?
- 7. Primefaces对话框,没有显示
- 8. 进度对话框没有显示
- 9. 对话框没有显示在dojo
- 10. 颜色对话框没有显示
- 11. 显示对话框没有FragmentActivty
- 12. IOS中没有显示对话框cordova
- 13. openFileDialog.ShowDialog()没有显示对话框
- 14. jQuery对话框没有显示
- 15. MYOB oauthService.GetTokensAsync没有显示对话框
- 16. jQuery对话框没有完全显示
- 17. Android对话框:有没有办法让背景android UI可点击,而对话框显示?
- 18. 有对话框的Android对话框
- 19. android警报对话框中的android复选框没有显示
- 20. 我可以在同一个“onCreateDialog”中有2个对话框吗?
- 21. 我们可以在对话框中打开对话框吗?
- 22. JQuery对话框可以打开另一个JQuery对话框吗?
- 23. Android从对话框中显示另一个对话框
- 24. Android在另一个对话框顶部显示对话框
- 25. 对话框不显示android
- 26. Android:显示对话框类
- 27. 未显示Android对话框
- 28. 完成活动后,我们可以显示对话框吗?
- 29. 我的提示对话框显示没有背景?
- 30. 在对话框中显示图像什么也没有