是否可以逐个显示多个对话框?有没有像 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/