Добавление маски и разделителя тысяч в EditText - PullRequest
0 голосов
/ 14 января 2020

Мне нужно поставить валюту в начале текста, и этот текст должен делиться тысячами на точки. Сейчас я использую MaskedTextChangedListener из этой библиотеки, поэтому мой код выглядит следующим образом:

val listener = MaskedTextChangedListener(
            "[000].[000].[000]",
            true,monthlyInstallment.editText!!, null,null)

    listener.rightToLeft = true

    monthlyInstallment.editText?.addTextChangedListener(listener)

Здесь вы можете видеть, что я добавил маску и использовал значение rightToLeft для деления сумма по точкам. Проблема в том, что если я добавлю валюту в начало маски, как $[000].[000].[000], валюта появится только после того, как я заполню всю маску, тогда как мне нужно будет ее отобразить, когда я начну печатать.

Также я пытался поставить логи c для добавления валюты в другие TextChangeListener. Мой код следующий

if(!monthlyInstallment.editText?.text.toString().startsWith("$ ")){
                    monthlyInstallment.editText?.setText("$ " + monthlyInstallment.editText?.text.toString())
                    Logger.msg("check " + monthlyInstallment.editText?.text.toString().length)
                }
                monthlyInstallment.editText?.setSelection(monthlyInstallment.editText?.text.toString().length)

Здесь проблема в том, что мой курсор установлен где-то, но не в конце текста. Кстати, этот код помещен в метод afterTextChangedListener.

Так может ли кто-нибудь помочь мне решить одну из проблем?

...