Custom Dialog Fragment

前端 未结 2 1770
灰色年华
灰色年华 2021-01-13 04:34

I am trying to create a simplistic dialog similar to a DatePickerDialog. The Dialog that I am creating should provide the user with an array of ima

相关标签:
2条回答
  • 2021-01-13 04:48

    There are different ways you can create your dialog either using OnCreateView method or using OnCreateDialog method if you are extending the DialogFragment class and so the implementation goes in a different way for both.

    You should return your Dialog instance from OnCreateDialog method.

    How to show the dialog in a Activity

     FragmentTransaction ft = getFragmentManager().beginTransaction();
     Fragment prev = getFragmentManager().findFragmentByTag("YourFragmentID");
    
     if (prev != null) {
            ft.remove(prev);
        }
     ft.addToBackStack(null);
    
     PicturePickerFragment pf = new PicturePickerFragment();
     pf.show();
    

    May be you can refer to this link which is a nice example from official AndroidDeveloper's site.

    0 讨论(0)
  • 2021-01-13 05:04

    If the activity in which you want to open the DialogFragment extends FragmentActivity, you should execute:

    PicturePickerFragment dialog = new PicturePickerFragment();
    dialog.show(getSupportFragmentManager(), "YourDialog");
    

    Also you need to inflate your dialog layout file in the method onCreateDialog of your dialog fragment class.

    Using AlertDialog.Builder you can achieve all this easily, e.g.

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    
    LayoutInflater inflater = getActivity().getLayoutInflater();
    
    // Inflate and set the layout for the dialog
    // Pass null as the parent view because its going in the dialog layout
    builder.setView(inflater.inflate(R.layout.dialoglayout, null))
     .setTitle(R.string.dialog_title)
     .setPositiveButton(R.string.pos_button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // call the method on the parent activity when user click the positive button
        }
    })
     .setNegativeButton(R.string.neg_button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // call the method on the parent activity when user click the negative button
        }
    });
    return builder.create();
    

    There are many examples on http://developer.android.com/reference/android/app/DialogFragment.html

    0 讨论(0)
提交回复
热议问题