我有一个仅包含工具栏和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问题
@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;
}};