Создание пользовательского типа ввода для Android - PullRequest
0 голосов
/ 06 апреля 2011

мое требование заключается в том, чтобы пользователь мог набирать только цифры от 0 до 9 и чтобы после каждых 4 символов знак «-» автоматически добавлялся в edittext.user не должен иметь возможности удалять какую-либо часть текста редактирования, кроме как в конце. Пожалуйста, предложите мотыгу, чтобы сделать это.

Пользователь не должен быть в состоянии переместить курсор в любое место в середине набранного текста и иметь возможность удалить его. Как это сделать? Какое событие вызывается, когда пользователь перемещает позицию курсора?

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

Ваше первое требование - 0-9, выполняется путем установки свойства редактирования текста только для пользовательского номера типа XML и для подсчета вашего текста в наборе прослушивателя текста для редактирования текста в объекте редактирования текста и подсчета слов, и вы можете добавить ""персонаж.

0 голосов
/ 23 ноября 2011

Я нашел решение своей проблемы: пользователь не должен быть в состоянии переместить курсор в середину набираемого текста. Нам нужно расширить EditText и добавить переопределить следующую функцию:

@Override
protected void onSelectionChanged(int selStart, int selEnd) {
    // TODO Auto-generated method stub
    // this method will check if the cursor is moved. if yes then bring back
    // the cursor to the end so that the user cannot delete anythign from
    // the middle of the text(here sub id). Any editing will only be
    // possible at the end of the text
    if (selStart == selEnd) {
        int length = getText().toString().length();
        setSelection(length);
    }
    super.onSelectionChanged(selStart, selEnd);
}
...