EditText не показывает набранные символы - PullRequest
0 голосов
/ 12 мая 2019

У меня есть действие, которое при нажатии кнопки запускает AlertDilalog, который содержит EditText и ImageView. EditText имеет addTextChangedListener, который выполняется, когда пользователь пишет в EditText. В методе afterTextChanged слушателя (TextWatcher) изображение ImageView изменяется. Аномалия заключается в том, что в то время как пользователь пишет в EditText, ImageView правильно назначен, в то время как в Edittext напечатанные символы не отображаются.

Я заметил, что набранный текст появляется на EditText только тогда, когда на телефоне нажата кнопка «назад» (практически, когда клавиатура исчезает). Наконец, я увидел, что эта проблема не возникает, если я комментирую строки кода, относящиеся к изменению изображения ImageView, как если бы это было причиной аномалии.

//// AlertDialog с объявлением Слушатель EditText ////

private void showDialog(Context context) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        final View layout = LayoutInflater.from(this).inflate(R.layout.alert_dialog, null);
        builder.setView(layout);

        builder.setNegativeButton("Annulla", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });

        EditText nomePrd = layout.findViewById(R.id.txt_prd);
        nomePrd.addTextChangedListener(changedText(layout));


        builder.setPositiveButton("Salva", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                dialog.dismiss();
            }
        });

        builder.show();
    }

//// EditText Listener ////

public TextWatcher changedText(final View layout) {
        return new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int    count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

                ImageView imgPrd=(ImageView)(layout).findViewById(R.id.imageProduct);
                imgPrd.setImageResource(R.drawable.ic_launcher_background);
            }

        };
    }
...