Android EditText 应用在 TextWatcher 中调用 clear 时冻结

Android EditText app freezes on calling clear inside TextWatcher

我的应用在调用 clear onTextChanged TextWatcher 时冻结

以下是我的代码

        materialEditText.addTextChangedListener(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) {
            if(s.toString().equals("$")){
                materialEditText.getText().clear();
         
            }
            else if(!s.toString().contains("$")){
                materialEditText.setText("$"+s);
                Selection.setSelection(materialEditText.getText(), materialEditText.getText().length());

            }
        }

下一行导致冻结如何解决?

 materialEditText.getText().clear();

editTextonTextChanged() 中调用 setText() 将导致无限循环。您需要通过使用标志或其他任何方式来解决 setText() 问题。仅在未更新时更新文本。这样它就不会进入无限循环