4 votes

Comment obtenir un EditText à partir d'un fragment

Je crée le prochain AlerDialog :

AlertDialog.Builder alert = new AlertDialog.Builder(appContext);

                alert.setTitle("Add subcontractors").setView(R.layout.add_subcontractor_form);

                //final EditText input = new EditText(appContext);

                alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        String YouEditTextValue = input.getText().toString();
                    }
                });

                alert.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        // what ever you want to do with No option.
                    }
                });

                alert.show();

Et avoir la prochaine mise en page pour cela :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
           <EditText
            android:layout_margin="10dp"
            android:id="@+id/et_sub_name"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="Type name here"
            android:textSize="20sp"/>
</LinearLayout>

Ma question est la suivante : comment obtenir la vue EditText à partir de ma mise en page dans le code ? Parce que je veux avoir un texte saisi après que l'utilisateur ait appuyé sur le bouton "OK".

5voto

Rohit Arya Points 3806

Essayez de faire comme ça :

LayoutInflater inflater = getActivity().getLayoutInflater();
View dialogView = inflater.inflate(R.layout.add_subcontractor_form, null);
alert.setView(dialogView);

EditText editText = (EditText) dialogView.findViewById(R.id.et_sub_name);

1voto

petey Points 5823
AlertDialog.Builder alert = new AlertDialog.Builder(appContext);
// inflate your view
View inflatedView = LayoutInflator.from(appContext).inflate(R.layout.add_subcontractor_form)
// find the edittext
final EditText input = (EditText) inflatedView.findViewById(R.id. et_sub_name)

alert.setTitle("Add subcontractors")
     .setView(inflatedView);

alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        String YouEditTextValue = input.getText().toString();
    }
});

alert.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        // what ever you want to do with No option.
    }
});

alert.show();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X