EditText - изменить текст при наборе текста

Мне нужно заменить текст внутри EditText при наборе: Пример: если пользователь нажал «A» это будет сохранено в буфере и в EditText & quot; D & quot; вместо этого отображается (выглядит так, как будто он нажал «D»). Теперь я могу прочитать нажатый символ, но не могу отобразить любой символ в et, чтобы избежать переполнения стека:

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("");
                }
            }
    });

Ответы на вопрос(3)

Ваш ответ на вопрос