OnEditorActionListener在多行EditText上不起作用

时间:2018-12-15 17:44:09

标签: java android input editor

我有一个仅包含工具栏和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来捕捉可能的(软键盘)Enter按下,但是它没有被触发,这就是m问题

这是我的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;
   }};

0 个答案:

没有答案