Bonjour a tous, je suis debutant dans le developpement mobile android (android studio) et j'aimerais que vous m'aidez. Dans le cadre de ma formation je developpe une application de messagerie dans android mon probleme est le suivant: j'aimerais recuperer les reponses generees par un AlertDialog dans un viewHolder mais je n'y arrive pas merci et voici mon code.



mon code alertDialog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 
package com.example.appli_mess.Controle;
 
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.TextView;
 
import androidx.appcompat.app.AppCompatDialogFragment;
 
import com.example.appli_mess.R;
 
public class alertDecryptage extends AppCompatDialogFragment {
 
    RadioGroup radio;
    LinearLayout esp_cesar, esp_vig;
    EditText val_cesar, val_vig;
    TextView mes_cesar, mes_vig;
   // alertDecryptageListener listener;
    int choix = 1;
 
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.layout.alert_decryptage, null);
        builder.setView(view)
                .setTitle(R.string.titre2)
                .setNegativeButton(R.string.choix_negatif, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
 
                    }
                })
                .setPositiveButton(R.string.choix_positif, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if(choix == 1 && !val_vig.getText().toString().trim().equals("")){
                            String type = "vigenere";
                            String valeur = val_vig.getText().toString();
                           // listener.applyTexts(type, valeur);
                        }
                        else if(choix == 2 && !val_vig.getText().toString().trim().equals("")){
                            String type = "cesar";
                            String valeur = val_vig.getText().toString();
                            //listener.applyTexts(type, valeur);
                        } else {
                            String type = "neant";
                            String valeur = "";
                           // listener.applyTexts(type, valeur);
                        }
 
                    }
                });
 
        radio = (RadioGroup) view.findViewById(R.id.list_choix_dechif);
        esp_cesar = (LinearLayout) view.findViewById(R.id.esp_val_cesar1);
        esp_vig = (LinearLayout) view.findViewById(R.id.esp_val_vig1);
        val_cesar = (EditText) view.findViewById(R.id.valeur_cesar1);
        val_vig = (EditText) view.findViewById(R.id.valeur_vigenere1);
        mes_cesar = (TextView) view.findViewById(R.id.id_commentaire_cesar1);
        mes_vig = (TextView) view.findViewById(R.id.id_commentaire_vigenere1);
 
        radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if (checkedId == R.id.decrypt_vigenere){
                    esp_cesar.setVisibility(View.GONE);
                    esp_vig.setVisibility(View.VISIBLE);
                    mes_cesar.setVisibility(View.GONE);
                    mes_vig.setVisibility(View.VISIBLE);
                    choix = 1;
 
 
                }
 
                if (checkedId == R.id.decrypt_vigenere){
                    esp_cesar.setVisibility(View.VISIBLE);
                    esp_vig.setVisibility(View.GONE);
                    mes_cesar.setVisibility(View.VISIBLE);
                    mes_vig.setVisibility(View.GONE);
                    choix = 2;
 
                }
            }
        });
 
 
        return builder.create();
 
    }
 
    /*@Override
    public void onAttach(Context context) {
        super.onAttach(context);
        try {
            listener = (alertDecryptageListener) context;
        } catch (ClassCastException e) {
            throw new ClassCastException(context.toString()+" impossible de caster");
        }
 
    }*/
 
    /*public interface alertDecryptageListener{
        void applyTexts(String type, String valeur);
    }*/
}


mon code ViewHolder
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
public class ViewHolder extends RecyclerView.ViewHolder {
        RelativeLayout globe, esp_btn;
        ImageView image;
        TextView mes, date;
        Button btn_sup;
        int pos1;
        Context context;
 
        public ViewHolder(@NonNull final View itemView, final Context context) {
            super(itemView);
            this.context = context;
            globe = (RelativeLayout) itemView.findViewById(R.id.globe_message);
            btn_sup = (Button) itemView.findViewById(R.id.btn_sup1);
            image = (ImageView) itemView.findViewById(R.id.imageProfile);
            mes = (TextView) itemView.findViewById(R.id.textMessage);
            date = (TextView) itemView.findViewById(R.id.idDate);
            btn_sup = (Button) itemView.findViewById(R.id.btn_sup1);
            pos1 = pos;
 
            globe.setOnClickListener(new View.OnClickListener() {
                @RequiresApi(api = Build.VERSION_CODES.M)
                @SuppressLint("RestrictedApi")
                @Override
 
                public void onClick(View v) {
                    PopupMenu popu = new PopupMenu(globe.getContext(), itemView);
                    popu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                        @Override
                        public boolean onMenuItemClick(MenuItem item) {
                            switch (item.getItemId()){
                                case R.id.i_supprimer:
                                    new requete_message().supprimer_message(new Access1(itemView.getContext())
                                            , date.getText().toString()
                                            , mes.getText().toString()
                                            , mes1.getAdresse(), pos1, taille);
                                    globe.setVisibility(View.GONE);
                                    return true;
 
                                case R.id.i_supprimer_p:
                                    Intent intent = new Intent(context, Esp_Mess.class);
 
                                    intent.putExtra("signal", 1);
                                    context.startActivity(intent);
                                    for (final ViewHolder h : holder) {
                                        h.btn_sup.setVisibility(View.VISIBLE);
 
                                        h.btn_sup.setOnClickListener(new View.OnClickListener() {
                                            @Override
                                            public void onClick(View v) {
                                                new requete_message().supprimer_message(new Access1(itemView.getContext())
                                                        , h.date.getText().toString()
                                                        , h.mes.getText().toString()
                                                        , mes1.getAdresse(), h.pos1, taille);
                                                taille--;
                                                h.globe.setVisibility(View.GONE);
                                            }
                                        });
                                    }
 
                                    return TRUE;
                                case R.id.i_decrypter:
                                    alertDecryptage decrypt = new alertDecryptage();
                                    decrypt.show(((AppCompatActivity)context).getSupportFragmentManager(), "decryptage");
                                    String i = alertDecryptage.type1;
                                    String v = alertDecryptage.valeur1;
 
                                    return true;
                                default:
                                    return false;
                            }
                        }
                    });
 
                    popu.inflate(R.menu.menu_esp_mes);
                   // popu.setGravity(Gravity.RIGHT);
                    try {
                        Field mFieldPopup=popu.getClass().getDeclaredField("mPopup");
                        mFieldPopup.setAccessible(true);
                        MenuPopupHelper mPopup = (MenuPopupHelper) mFieldPopup.get(popu);
                       // mPopup.setForceShowIcon(true);
                    } catch (Exception e) {
 
                    }
 
                    popu.show();
                }
            });
 
        }
}
merci beaucoup