как удалить первый символ, если первый символ - ноль | Android | TextWatcher - PullRequest
2 голосов
/ 27 апреля 2020

У меня есть вопрос о том, как удалить первый символ, если первый символ равен нулю.

ex: 0887 до 887

здесь я использую 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) {

    }

Я так запутался, что не так в моем коде, любая помощь или предложение будут признательны

Ответы [ 2 ]

3 голосов
/ 27 апреля 2020

Вы можете проверить, является ли первый символ 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
                    )
                )
            }
        }
    }
1 голос
/ 27 апреля 2020
 @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());
        }
    }
...