Переход на новую строку в EditText
Подскажите пожалуйста почему нужный эффект срабатывает только через механическую клавиатуры. скрин экрана
Разметка
<EditText
android:id="@+id/et_input_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/iv_show_photo"
android:layout_marginStart="@dimen/_8sdp"
android:layout_marginTop="@dimen/_12sdp"
android:layout_marginEnd="@dimen/_8sdp"
android:layout_marginBottom="@dimen/_10sdp"
android:background="@null"
android:fontFamily="@font/text_note_font"
android:gravity="top"
android:autoLink="web"
android:linksClickable="true"
android:hint="@string/write_something"
android:importantForAutofill="no"
android:includeFontPadding="false"
android:inputType="text"
android:textSize="@dimen/_15ssp"
android:transitionName="text" />
EditorActionListener
detailBinding.etInputText.setOnEditorActionListener((v, actionId, event) -> {
if (detailBinding.etInputText.getText().toString().startsWith("1. ") && (actionId == KeyEvent.KEYCODE_ENTER)) {
nextNumber++;
detailBinding.etInputText.setText(detailBinding.etInputText.getText() + "\n" + nextNumber + ". ");
detailBinding.etInputText.setSelection(detailBinding.etInputText.getText().length());
return true;
}
return false;
});
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Чтобы переходить на новую строку у вас вместо:
android:inputType="text"
можно установить такое:
android:inputType="text|textMultiLine|"
так же можно установить и такой аттрибут дополнительно:
android:singleLine="false"
вот есть подобные вопросы 1 и 2.
UPDATE
вообще имелось ввиду использование такого слушателя:
field1.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(s.length() != 0){}
}
});
то есть вы вводите текст и дальше разбираете его посимвольно, и когда введенный символ == \n то вы делаете перенос и добавляете вашу цифру. Вот есть документация по данному функционалу