是否可以顯示多個對話框?有沒有像對話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. 我可以在Android中的MapActivity中顯示對話框嗎?
- 2. 進度對話框沒有顯示
- 3. IOS中沒有顯示對話框cordova
- 4. 顏色對話框沒有顯示
- 5. jQuery對話框沒有顯示
- 6. Android對話框:有沒有辦法讓背景android UI可點擊,而對話框顯示?
- 7. 我們可以在對話框中打開對話框嗎?
- 8. JQuery對話框可以打開另一個JQuery對話框嗎?
- 9. Android從對話框中顯示另一個對話框
- 10. Android在另一個對話框頂部顯示對話框
- 11. 未顯示Android對話框
- 12. Android:顯示對話框類
- 13. 完成活動後,我們可以顯示對話框嗎?
- 14. 我的提示對話框顯示沒有背景?
- 15. 在Magnolia對話框中沒有顯示保存/取消對話框按鈕
- 16. Android請求權限對話框沒有顯示
- 17. Android權限對話框在Xamarin.Forms中沒有顯示
- 18. Android,等待對話框根本沒有顯示
- 19. 顯示對話框
- 20. 顯示對話框
- 21. 不能顯示多個對話框
- 22. jquery ui對話框,有多個對話框影響位置
- 23. Android:沒有陰影的對話框
- 24. Android - > Facebook登錄沒有對話框?
- 25. 對話框沒有關閉
- 26. 沒有授權對話框
- 27. 有條件地顯示Primefaces對話框
- 28. 有沒有辦法指定FB.ui對話框的z-index
- 29. 沒有顯示進度對話動畫?
- 30. 顯示對話框不顯示對話框