emedinaa / android_custom_dialog_fragment

DialogFragment with custom layout
8 stars 5 forks source link

Leer texto ingresado en el campo username y mostrarlo junto con el Toast #1

Open juanxodj opened 8 years ago

juanxodj commented 8 years ago

He probado agregar "username = (EditText)findViewById(R.id.username);" en el evento UI y concaternarlo en el Toast + username:

Toast.makeText(this,"Custom Dialog "+ getString(R.string.signin) + username,Toast.LENGTH_SHORT).show();

Me devuelve Null porque obviamente el fragment_custom_dialog.xml no es parte de la actividad, como podría hacer para capturar ese texto y mostrarlo junto al Toast?

emedinaa commented 8 years ago

Hola Juanxodj, ten presente que la actividad y el dialog son 2 componentes diferentes . Entonces si necesitas ver algùn log o toast para saber de alguna acciòn del dialogo, debes hacerlo en la clase del dialogo o en el callback del Dialogo en la actividad cuando se cierra, es decir al aceptar o cancelar.

@NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater
        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

        View customView= inflater.inflate(R.layout.fragment_custom_dialog,null);
        eteUsername= (EditText) customView.findViewById(R.id.eteUsername);
        etePassword= (EditText) customView.findViewById(R.id.etePassword);

        builder.setView(customView)
                // Add action buttons
                .setPositiveButton(R.string.signin, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        // sign in the user ...
                        if(mListener!=null){
                            if(validateForm()) {
                                String message = String.format("username %s password %s",username,password);
                                Log.v(TAG, message);

                                mListener.onDialogPositive(message);
                            }
                        }
                    }
                })
                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                       CustomDialogFragment.this.getDialog().cancel();
                        if(mListener!=null){
                            mListener.onDialogNegative(null);
                        }
                    }
                });
        return builder.create();
    }