在 EditText 中输入数字后,下一个按钮键盘会自动将用户带到不同的 EditText
After inputting number in EditText, next button keyboard takes user to a different EditText automatically
制作一个简单的卡路里转换器。
这是图片中的问题。
我在使用 Genymotion 模拟器。
这是我遇到问题的屏幕部分:
当我点击 EditText 数字字段时,数字键盘出现
但是我必须单击下一个箭头,它会将我带到下一个输入字段
在我终于可以离开数字键盘之前。
这是怎么回事?在我将数字输入一个编辑文本后,我希望它就此结束,而不是跳转到下一个编辑文本。此外,这很奇怪,因为如果我在底部的两个 EditText 中输入一个数字,它们会立即结束,而如果我在顶部的 EditText 中输入一个数字,它们会将我带到底部的 EditText 之一。
这是 XML 文件。
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText2"
android:layout_below="@+id/imageView2"
android:layout_alignEnd="@+id/imageView2"
android:layout_alignStart="@+id/imageView2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText3"
android:layout_alignBottom="@+id/editText2"
android:layout_alignEnd="@+id/imageView4"
android:layout_alignStart="@+id/imageView4" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText4"
android:layout_marginBottom="32dp"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/imageView5"
android:layout_alignEnd="@+id/imageView5" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText5"
android:layout_alignTop="@+id/editText4"
android:layout_alignStart="@+id/imageView3"
android:layout_toStartOf="@+id/editText2" />
谢谢!!!
为您的 EditText 设置输入法选项:
<EditText
android:imeOptions="actionDone"
... />
您可以从各种选项中进行选择。请参阅文档:
http://developer.android.com/reference/android/widget/TextView.html#attr_android:imeOptions
如果您想跳转下一个字段,您使用 nextFocusDown 属性在 editText 本身中提到了 id。
试试这个....
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText2"
android:layout_below="@+id/imageView2"
android:layout_alignEnd="@+id/imageView2"
android:layout_alignStart="@+id/imageView2"
android:nextFocusDown="@+id/editText3"/>
如果您想在特定视图的软键盘上显示完成,请使用 android:imeOptions="actionDone" 属性。
真正处理按下下一个 (enter) 键时发生的事情的唯一方法是为其创建一个侦听器,告诉它根据应用程序的当前状态做什么。
final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press
return true;
}
return false;
}
});
要select一个编辑文本,你需要像这样聚焦它:
editText.requestFocus();
简单的解决方案是添加:
android:imeOptions="actionNext"
android:nextFocusDown="@+id/..." <!--Obviously with the next edittext ID--
制作一个简单的卡路里转换器。
这是图片中的问题。
我在使用 Genymotion 模拟器。
这是我遇到问题的屏幕部分:
当我点击 EditText 数字字段时,数字键盘出现
但是我必须单击下一个箭头,它会将我带到下一个输入字段
在我终于可以离开数字键盘之前。
这是怎么回事?在我将数字输入一个编辑文本后,我希望它就此结束,而不是跳转到下一个编辑文本。此外,这很奇怪,因为如果我在底部的两个 EditText 中输入一个数字,它们会立即结束,而如果我在顶部的 EditText 中输入一个数字,它们会将我带到底部的 EditText 之一。
这是 XML 文件。
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText2"
android:layout_below="@+id/imageView2"
android:layout_alignEnd="@+id/imageView2"
android:layout_alignStart="@+id/imageView2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText3"
android:layout_alignBottom="@+id/editText2"
android:layout_alignEnd="@+id/imageView4"
android:layout_alignStart="@+id/imageView4" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText4"
android:layout_marginBottom="32dp"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/imageView5"
android:layout_alignEnd="@+id/imageView5" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText5"
android:layout_alignTop="@+id/editText4"
android:layout_alignStart="@+id/imageView3"
android:layout_toStartOf="@+id/editText2" />
谢谢!!!
为您的 EditText 设置输入法选项:
<EditText
android:imeOptions="actionDone"
... />
您可以从各种选项中进行选择。请参阅文档: http://developer.android.com/reference/android/widget/TextView.html#attr_android:imeOptions
如果您想跳转下一个字段,您使用 nextFocusDown 属性在 editText 本身中提到了 id。
试试这个....
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText2"
android:layout_below="@+id/imageView2"
android:layout_alignEnd="@+id/imageView2"
android:layout_alignStart="@+id/imageView2"
android:nextFocusDown="@+id/editText3"/>
如果您想在特定视图的软键盘上显示完成,请使用 android:imeOptions="actionDone" 属性。
真正处理按下下一个 (enter) 键时发生的事情的唯一方法是为其创建一个侦听器,告诉它根据应用程序的当前状态做什么。
final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press
return true;
}
return false;
}
});
要select一个编辑文本,你需要像这样聚焦它:
editText.requestFocus();
简单的解决方案是添加:
android:imeOptions="actionNext"
android:nextFocusDown="@+id/..." <!--Obviously with the next edittext ID--