Ограничить редактируемый внутренний текст

#android

#Android

Вопрос:

Как вы можете запретить кому-либо вводить следующее в EditText, где setLines = 4?

dfa
d

ads
dd
adf

adf
ddf

ad
ddas

Ответ №1:

Ну, на самом деле вы не можете запретить кому-либо вводить более четырех строк. Если он просто печатает, не добавляя новые строки вручную, вы никогда не узнаете, сколько строк он ввел.

Однако вы можете ограничить количество добавляемых вручную новых строк (с помощью клавиши enter), нажав на OnKeyListener из EditView :

 EditText edit = (EditText)findViewById(R.id.edit);
    edit.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER) {
                int lineCount = ((EditText)v).getText().toString().split("\n").length;
                if (lineCount > 3) {
                    return true;
                }
            }
            return false;
        }
    });
  

Это довольно сложный метод, но пока единственный, который я могу придумать…

Комментарии:

1. Я также сталкивался с этой проблемой, и на данный момент это кажется единственным (разумным) способом ее решения.