public class HostFragment extends Fragment { private static final int REQUEST_WEIGHT = 1; private static final int REQUEST_ANOTHER_ONE = 2; public void openWeightPicker() { DialogFragment fragment = new WeightDialogFragment(); fragment.setTargetFragment(this, REQUEST_WEIGHT); fragment.show(getFragmentManager(), fragment.getClass().getName()); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { switch (requestCode) { case REQUEST_WEIGHT: int weight = data.getIntExtra(WeightDialogFragment.TAG_WEIGHT_SELECTED, -1) // //... break; case REQUEST_ANOTHER_ONE: //... break; // requestCode } updateUI(); } } }
public class WeightDialogFragment extends DialogFragment { // public static final String TAG_WEIGHT_SELECTED = "weight"; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { LayoutInflater inflater = getActivity().getLayoutInflater(); View view = inflater.inflate(..., null); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setView(view) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Intent intent = new Intent(); intent.putExtra(TAG_WEIGHT_SELECTED, mNpWeight.getValue()); getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, intent); } }); return builder.create(); } }
Source: https://habr.com/ru/post/259805/
All Articles