поставить # перед словом написано редактировать текст - PullRequest
0 голосов
/ 15 апреля 2020

как поставить символ # перед словом в тексте редактирования?

что я хочу: я хочу поставить символ # перед каждым словом, написанным в тексте редактирования

каждое слово начинается с #

например:

# привет #world # hi


1 Ответ

1 голос
/ 15 апреля 2020

Попробуйте это TextWatcher.

class SharpWordsTextWatcher: TextWatcher {

    private var addSharp: Boolean = false
    private var isEmpty = false

    override fun afterTextChanged(s: Editable) {
        if(addSharp) {
            s.insert(s.length - 1, "#")
        }
    }

    override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
        isEmpty = s.isEmpty() || s.last() == ' '
    }

    override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
        addSharp = isEmpty && s.last() != ' ' && count != 0
    }

}

И добавьте это к своему EditText.

myEditText.addTextChangedListener(SharpWordsTextWatcher())
...