Android:我可以一个接一个地显示多个对话框吗?有没有像 Dialog Z-Level 这样的东西?

标签 android android-dialog android-dialogfragment

是否可以逐个显示多个对话框?有没有像 Dialog Z-Level 这样的东西? 我在用户选择元素的地方使用 DialogFragment,当他确认他的选择时,它被保存到数据库并发送到服务器上。如果保存操作失败,我想通知用户...另一个对话框是否可能?它不会清除我的第一个对话吗? 提前致谢。

最佳答案

的确,可以在另一个 fragment 中显示多个对话框 fragment 。 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();
        }
    }
}

关于Android:我可以一个接一个地显示多个对话框吗?有没有像 Dialog Z-Level 这样的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282927/

相关文章:

android - 如何创建带选项卡的对话框

android - 如何在对话框中用 cointainerviewId 替换 fragment

android - 互联网可用时如何处理自动消失对话框 fragment ?

android - 在android中的类中的对话框 fragment 的线性布局中添加textview

java - panoramagl 热点将移至下一个全景

android - phonegap 地理定位不起作用

android - phonegap html5 android 同步文件系统 IO

Android 对话框设置取消触摸侧

android - Dialog Fragment 无法将事件回传给 Android 中的调用 Fragment?

java - 在普通浏览器中打开来自 Android Webview 的链接作为弹出窗口