在对话框中使用Bundle传递数据。
例如,假设您有两个对话框:第一个对话框显示一个EditText,第二个对话框显示第一个对话框中输入的文本。
在第一个对话框的onClick方法中,创建一个Bundle并将文本添加到该Bundle:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
EditText input = new EditText(getActivity());
builder.setTitle("Enter Text");
builder.setView(input);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Get the entered text from the EditText
String text = input.getText().toString();
// Create a bundle to pass to the second dialog
Bundle bundle = new Bundle();
bundle.putString("text", text);
// Create the second dialog and pass the bundle to it
SecondDialogFragment secondDialog = new SecondDialogFragment();
secondDialog.setArguments(bundle);
secondDialog.show(getFragmentManager(), "SecondDialog");
}
});
builder.setNegativeButton("Cancel", null);
builder.show();
然后,在第二个对话框的onCreateDialog方法中,获取Bundle中的文本并将其添加到第二个对话框的视图中:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
Bundle bundle = getArguments();
String text = bundle.getString("text");
builder.setTitle("Second Dialog");
builder.setMessage(text);
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
return builder.create();
}