【发布时间】:2018-10-24 21:15:17
【问题描述】:
我有一个带有 6 个 EditText 的活动...该活动运行良好,但我需要单击每个 EditText 来填充它...
如何使输入键将焦点更改为另一个 EditText?
我已经尝试过的
1。我已经在每个 EditText 上设置了 OnKeyListener。
switch (v.getId()) {
case R.id.editText1:
activity.findViewById(R.id.editText2).requestFocus();
return true;
case R.id.editText2:
activity.findViewById(R.id.editText3).requestFocus();
return true;
case R.id.editText3:
activity.findViewById(R.id.editText4).requestFocus();
return true;
.
.
.
}
但是,当我点击回车键时,在焦点切换到另一个 EditText 之前,会在之前的 EditText 上创建一个新行。
2。我已将 android:singleLine="true" 添加到每个 EditText。它不适用于 inputType="number" 的 EditText
【问题讨论】:
-
您也可以尝试添加“android:maxLines="1"” 吗?以我的经验,即使其中一个被“弃用”,两者都有区别。我认为您的选项 1 是在这种情况下要走的路。
-
您也可以尝试在 KeyEvent 参数中使用“setOnEditorActionListener(...”) 侦听 event.getKeyCode() == KeyEvent.KEYCODE_ENTER 并在此条件为真时返回 true,这应该停止 EditText做他的默认行为
-
~Tassadar: 设置 maxLines="1" 会创建一个新行,但不会调整 edittext 的大小。