Android full-screen dialog callback issue

android, android-dialogfragment, android-fragments

Solution

I don't see code from your post. So I am guessing your code structure as a start. First build your dialog with a listener and process setPositiveButton() and the onClick event.

Code suggestion:

public class ChildrenSpecificationFragment extends Fragment {
...

public void passData(Object obj) {
}

   class SubChildFragment extends Fragment {
       AlertDialog.Builder builder = new AlertDialog.Builder(thisContext);
       ...
       // Add the buttons...
       builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int id) {
           ...
           passData(Object obj);   // pass data to the outer fragment class

Notes:

- `SubChildFragment`, for example, is an inner class derived from Fragment. It can call the public method `passData`() in the outer class `ChildrenSpecificationFragment` for passing any data you need.

- I am using an inner class because I think this is what you meant in your diagram by

Add child full-screen fragment

- This coding technique is easier than starting a new Activity and Intent.

For showing fullscreen dialogs, there is a good Google webpage I think @ Dialog - Fullscreen. Search text for "Showing a Dialog Fullscreen or as an Embedded Fragment".

Problem

I am having trouble wrapping my head around something but let me first describe my setup: I have an activity that references 3 fragments, each one of them get shown at the correct time. This is how the ChildrenSpecificationFragment looks: If the user clicks the floating action button the following DialogFragment opens: I found the following information in the new material design guidelines: https://www.google.com/design/spec/components/dialogs.html#dialogs-full-screen-dialogs Avoid dialogs that: Open additional dialogs from within a dialog. Contain scrolling content, particularly alerts. Instead, consider alternate containers or layouts that are optimized for reading or interacting with significant amounts of content. Exceptions include:Full-screen dialogs may open additional dialogs, such as pickers, because their design accommodates additional layers of material without significantly increasing the app’s perceived z-depth or visual noise. This is where my problems begin. The 'add child' dialog has scrollable content (in landscape mode) and when the user clicks 'Birth date' a date picker opens. I am trying to find a way to implement a full screen dialog (as in the guidelines) that has a callback to the ChildrenSpecificationFragment, so that I can add the child to the RecyclerView . I hope that my questing is clear and would greatly appreciate any input that would lead me to the solution. Thanks in Advance!

Original source