Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android EditText应用程序在调用clear inside TextWatcher时冻结_Java_Android_Android Edittext_Freeze_Android Textinputedittext - Fatal编程技术网

Java Android EditText应用程序在调用clear inside TextWatcher时冻结

Java Android EditText应用程序在调用clear inside TextWatcher时冻结,java,android,android-edittext,freeze,android-textinputedittext,Java,Android,Android Edittext,Freeze,Android Textinputedittext,我的应用程序在调用clear onTextChanged TextWatcher时冻结 下面是我的代码 materialEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Ov

我的应用程序在调用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();

editText
onTextChanged()
中调用
setText()
将导致无限循环。您需要通过使用flag或其他方法来解决
setText()
。仅在未更新时更新文本。这样它就不会进入无限循环

editText
onTextChanged()
中调用
setText()
将导致无限循环。您需要通过使用flag或其他方法来解决
setText()
。仅在未更新时更新文本。这样它就不会进入无限循环

如果我没有错的话,我猜它会进入无限循环,因为您在
onTextChanged
中保存了一条语句,即
materialEditText.setText(“$”+s)哦,是的,谢谢你修复了它。你能把这个作为答案吗?如果我没有错的话,我想这是在一个无限循环中进行的,因为你在
onTextChanged
I.e
materialEditText.setText(“$”+s)中保存了一条语句哦,是的,谢谢你修复了它。你能把这个作为答案吗?