Можем ли мы иметь не редактируемый текст в тексте редактирования - PullRequest
18 голосов
/ 26 мая 2009

Я использую EditText. Возможно ли, чтобы часть текста была недоступна для редактирования, а оставшаяся часть редактировалась в том же EditText?

Ответы [ 2 ]

16 голосов
/ 26 мая 2009

Вы можете использовать

editText.setFocusable(false);

или

editText.setEnabled(false);

хотя отключение EditText в настоящее время не игнорирует ввод с экранной клавиатуры (я думаю, что это ошибка).

В зависимости от приложения может быть лучше использовать InputFilter, который отклоняет все изменения:

editText.setFilters(new InputFilter[] {
    new InputFilter() {
        public CharSequence filter(CharSequence src, int start,
            int end, Spanned dst, int dstart, int dend) {
            return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
        }
    }
});

Также см. этот вопрос.

2 голосов
/ 26 мая 2009

Вы можете реализовать TextChangedListener, где вы убедитесь, что эти части вашего текста не получат deleted/overwritten.

class TextChangedListener implements TextWatcher {
    public void afterTextChanged(Editable s) {
                makeSureNothingIsDeleted();
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

    public void onTextChanged(CharSequence s, int start, int before, int count) {}
}

    TextChangedListener tcl = new TextChangedListener();
    my_editable.addTextChangedListener(tcl);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...