Я использую EditText
. Возможно ли, чтобы часть текста была неотредактирована, а остальная часть редактировалась в том же EditText
?
Можем ли мы иметь неотредактированный текст в edittext
Ответ 1
Вы можете использовать
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
Вы можете реализовать 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);
Ответ 3
Попробуйте следующий код в своем XML файле: -
<EditText
android:id="@+id/et_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:hint="dd/mm/yy"
android:inputType="text"
android:textColor="@color/sky_blue"
android:fontFamily="@font/poppinsregular"
android:textSize="@dimen/sp_14"/>