Problem inflating custom view for AlertDialog in DialogFragment

后端 未结 9 2324
忘了有多久
忘了有多久 2020-11-27 04:43

I\'m trying to create a DialogFragment using a custom view in an AlertDialog. This view must be inflated from xml. In my DialogFragment

9条回答
  •  余生分开走
    2020-11-27 04:55

    Avoid request feature crash and use same layout:

    public class MyCombinedFragment extends DialogFragment
    {
        private boolean isModal = false;
    
        public static MyCombinedFragment newInstance()
        {
            MyCombinedFragment frag = new MyCombinedFragment();
            frag.isModal = true; // WHEN FRAGMENT IS CALLED AS A DIALOG SET FLAG
            return frag;
        }
    
        public MyCombinedFragment()
        {
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        {
            if(isModal) // AVOID REQUEST FEATURE CRASH
            {
            return super.onCreateView(inflater, container, savedInstanceState);
            }
            else
            {
            View view = inflater.inflate(R.layout.fragment_layout, container, false);
            setupUI(view);
            return view;
            }
        }
    
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState)
        {
            AlertDialog.Builder alertDialogBuilder = null;
            alertDialogBuilder = new AlertDialog.Builder(getActivity());
            View view = getActivity().getLayoutInflater().inflate(R.layout.fragment_layout, null);
            alertDialogBuilder.setView(view);
            alertDialogBuilder.setTitle(“Modal Dialog“);
            alertDialogBuilder.setPositiveButton("Cancel", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialog, int which)
                {
                    dialog.dismiss();
                }
            });
            setupUI(view);
            return alertDialogBuilder.create();
        }
    }
    

提交回复
热议问题