在 android 中按下 EditText 执行操作,同时保留键盘上的输入图标?

Perform action on EditText enter pressed in android while retaining the enter icon on keyboard?

我想在 android editText 中按下回车键时执行一个动作。我已经尝试了各种使用 EditorInfo.IME_ACTION_DONE 的方法,这些方法都有效,但问题是,它显示了一个我不想要的勾号图标。我希望它看起来像键盘上的默认输入按钮。

如何在保持 "Enter" 形状的同时处理输入按下事件?是否有类似 EditorInfo.IME_ACTION_ENTER 的东西来完成我的工作?

我的方法(显示对勾图标):

editorEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
        if( (actionId == EditorInfo.IME_ACTION_DONE){
            Toast.makeText(EditorActivity.this, "working", Toast.LENGTH_SHORT).show();

            return true;
        }

        return false;
    }
});

我希望它看起来像 "Enter" 形状,因为我正在制作一个文本编辑器。我正在尝试在按下 "Enter" 按钮时切换到另一个 EditText,但不希望它看起来像 "Tick" 按钮。这就是为什么我不想要刻度符号。

我认为只要在布局中更改 EditTextinputType 就可以在 Android 的软键盘上有一个类似 "Enter" 的按钮。

<EditText
    android:id="@+id/edit"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:inputType="textMultiLine" />

请注意,我使用 textMultiLine 作为 EditTextinputType

您可以在按下 EditText 中的 "Enter" 按钮时执行一些操作,如下所示。

final EditText edittext = (EditText) findViewById(R.id.edit);

edittext.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (before == 0 && count == 1 && s.charAt(start) == '\n') {
            String text = edittext.getText().replace(start, start + 1, "").toString(); // Removes the enter
            Toast.makeText(MainActivity.this, text, Toast.LENGTH_LONG).show();
        }
    }

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

    @Override
    public void afterTextChanged(Editable s) {
    }
});

希望完成答案。