Удаление ограничения длины символа и символа не работает в MultiLine EditText Android

Я использую многострочный текст редактирования, я ограничиваю символ, не превышающий 42 в Text Watcher, но я не могу удалить символ в моем тексте редактирования, он перемещается на новую строку. Как удалить символы и добавить новую строку, если символ в строке превышает предел?

Код XML:

 <EditText
            android:id = "@+id/edt_footer"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:text = "Thank you visit again"
            android:maxLines = "3"
            android:lines = "3"
            android:ems = "18"
            android:scrollbars = "vertical"
            android:inputType = "textMultiLine"
            android:gravity = "left|top"
            android:layout_marginLeft = "@dimen/margin_20"
            android:textSize = "20sp" /> 

Код Java:

footerEdt.addTextChangedListener(new TextWatcher(){
            @Override
            public void afterTextChanged(Editable s) {}
            @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 (count % 42 == 0)
                {
                    ((Editable) s).append("\n");
                    footerEdt.setSelection(footerEdt.getText().length());
                }

            }
        });

Вы читали stackoverflow.com/questions/23123833/…

Pankaj Kumar 14.08.2018 07:56
0
1
238
1

Ответы 1

Попробуй это

footerEdt.addTextChangedListener(new TextWatcher(){
        @Override
        public void afterTextChanged(Editable s) {}
        @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 (count % 42 == 0)
            {
                ((Editable) s).append("\n");
                footerEdt.setText(s);
                footerEdt.setSelection(footerEdt.getText().length());
            }

        }
    });

Не создаст ли это бесконечный цикл?

Pankaj Kumar 14.08.2018 08:09

Другие вопросы по теме