EditText - change le texte en tapant

J'ai besoin de remplacer le texte à l'intérieur de l'EditText tout en tapant :
Exemple : si l'utilisateur appuie sur "A" il serait stockée dans une mémoire tampon et sur l'EditText "D" s'affiche à la place (on dirait qu'il la touche "D").
Maintenant, je peux lire le pressé de caractère, mais je ne peux pas afficher n'importe quel caractère dans le et pour éviter de stackoverflow :

final EditText et = (EditText) findViewById(R.id.editTexts);
    final TextView tv = (TextView) findViewById(R.id.textView2);

    et.addTextChangedListener(new TextWatcher()
    {
            public void afterTextChanged(Editable s){}
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            } 
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if(s.length() > 0) {
                    tv.setText(s.toString().substring(s.length()-1));
                    et.setText("");
                }
            }
    });

source d'informationauteur Issam Zoli