如果第一个字符为零,如何删除第一个字符 | Android |文本观察器

how to delete the first character if the first character is a zero | Android | TextWatcher

我有一个问题,如果第一个字符是零,如何删除第一个字符。

例如: 0887887

这里我使用 Text Watcher 来编辑文本。但它不起作用

这是我的代码:

  @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 (edtPhone.getText().charAt(start) == '0'){
            edtPhone.getText().delete(start, start);
        }
    }

    @Override
    public void afterTextChanged(Editable s) {

    }

我很困惑我的代码到底出了什么问题 任何帮助或建议将不胜感激

可以检查第一个字符是否为0,然后使用substring方法提取除第一个字符外的字符串,然后将其设置为 EditText.

Kotlin 代码:

 phone_number_edt.doOnTextChanged { text: CharSequence?, start, count, after ->
        val length = text.toString().length

        if ((text.toString()[0] == '0')) {
            if (length > 1) {
                email_edt.setText(
                    text.toString().substring(
                        1,
                        length
                    )
                )
            }
        }
    }
 @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (edtPhone.getText().charAt(start) == '0'){
            String textValue = edtPhone.getText().toString();
            edtPhone.setText(textValue.substring(1, textValue.length());
        }
    }