OnEditorActionListener не работает на многострочном EditText - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть действие, которое содержит только панель инструментов и EditText.Я некоторое время искал решение (несколько дней), но ничего не нашел.Вот мой xml:

<AppCompatEditText
    android:id="@+id/contentedittext"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:gravity="start|top"
    android:inputType="textMultiLine"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/appBarLayout" />

Я прочитал, что эту проблему нужно решить после изменения типа ввода на 'singleLine', но мне нужно, чтобы мой EditText был многострочным.В моем Java-коде я установил OnEditorActionListener для перехвата возможных нажатий (программная клавиатура), но он не запускается, и это м проблема

Вот мой код Java

@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(Theme.getCurrentAppTheme(this));
    supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_vr);
    setSupportActionBar(findViewById(R.id.editor_toolbar));

    res = getResources();
    edit_area = findViewById(R.id.contentedittext);
    edit_area.addTextChangedListener(editorWatcher);
    edit_area.setOnEditorActionListener(mEditorActionListener);
    try {
        edit_area.setText(initFile().toString());
    } catch (IOException e) {
        Log.e(LOGTAG,e.getLocalizedMessage(),e);
    }
}
private TextView.OnEditorActionListener mEditorActionListener = new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
    Log.d(LOGTAG, "editoraction");
    int pointerPos = edit_area.getSelectionStart();
    SpannableStringBuilder editable = new SpannableStringBuilder(edit_area.getText().toString());
    if (keEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        Log.d(LOGTAG, "enter");
        return true;
    }
    return false;
   }};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...