EditText 将回车的按钮显示为“下一个” 并且点击“下一个”跳转到指定的EditText

本文介绍如何在Android应用中通过设置EditText属性实现输入框间的自动切换。主要涉及三个关键属性:android:imeOptions=actionNext确保按下回车键时进行切换;android:singleLine=true使输入框保持单行显示;android:nextFocusForward指定下一个获得焦点的视图ID。

只需要设置三个属性:

第一:

android:imeOptions="actionNext"
第二:必须要设置,不然还是显示的是回车的符号
android:singleLine="true"
第三:

android:nextFocusForward="@+id/et_express_receiver_address"



<EditText
                    android:selectAllOnFocus="true"
                    android:id="@+id/et_express_receiver_name"
                    android:gravity="center"
                    android:imeOptions="actionNext"
                    android:nextFocusForward="@+id/et_express_receiver_address"
                    android:singleLine="true"
                    android:textSize="@dimen/sp26"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"/>



转自:http://blog.sina.com.cn/s/blog_60b5e13e0102whzm.html


按键盘换行(通常指按下回车键)切换到下一个输入框有多种实现方式,以下是不同技术栈的实现方法: ### Android 实现 在 Android 中,可在布局文件添加多个 `EditText`,并在 `Activity` 里设置相应的回车事件监听器,以此实现按下回车键后将焦点跳转到下一个输入框的功能,能带来流畅的用户输入体验[^1]。 ### JavaScript + jQuery 实现 若 input 输入框是使用 JS 代码动态生成的,可使用 jQuery 的 `$("#id").on("keydown","input",function()` 特性来捕捉总输入框的个数,按一次回车指向下一个输入框,直到最后一个输入框。示例代码如下: ```javascript // para_table 是一个 id 选择器,这里绑定在这个选择器上 $("#para_table").on("keydown","tr input",function(){ // 响应回车键按下的处理 var e = event || window.event || arguments.callee.caller.arguments[0]; // 捕捉是否按键为回车键,可百度 JS 键盘事件了解更多 if(e && e.keyCode==13) { // 捕捉 para_table 下的 tr 里面文本输入框的个数 var inputs = $("#para_table tr ").find(":text"); console.log(inputs.length); var idx = inputs.index(this); // 获取当前焦点输入框所处的位置 if (idx == inputs.length - 1) { // 判断是否是最后一个输入框 // if (confirm("最后一个输入框已经输入,是否提交?")) // $("form[id='save']").save(); // 提交表单 } else { inputs[idx + 1].focus(); // 设置焦点 inputs[idx + 1].select(); // 选中文字 } } }); ``` 还有一种简单的 jQuery 实现方式,示例代码如下: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.11.0.min.js" type="text/javascript"></script> </head> <script type="text/javascript"> $(function() { $('#txtLoginAccount').focus();// 自动聚焦在输入账号的输入框 $('#txtLoginAccount').keydown(function(e) { if (e.which == 13) { if ($(this).val() != "") { $("#txtLoginPassword").focus();// 回车键后,聚焦在输入密码的输入框 } } }); $('#txtLoginPassword').keydown(function(e) { if (e.which == 13) { if ($(this).val() != "") { login();// 登录方法 } } }); }); </script> <body> <div id="content"> <form id="form_login" action="login.do" method="post"> <input type="text" name="userName" id="txtLoginAccount" value="" /> <input type="password" name="password" id="txtLoginPassword" value="" /> </form> </div> </body> </html> ``` ### SwiftUI 实现 在 SwiftUI 中,可以使用 `TextField` 和 `Form` 实现输入完成后自动跳转到下个输入框。示例代码如下: ```swift struct KeyboardTypeView: View { @State var firstName = "" @State var lastName = "" @State var focused: [Bool] = [true, false] var body: some View { Form { Section(header: Text("您的个人信息")) { TextFieldTyped(keyboardType: .default, returnVal: .next, tag: 0, text: self.$firstName, isfocusAble: self.$focused) TextFieldTyped(keyboardType: .default, returnVal: .done, tag: 1, text: self.$lastName, isfocusAble: self.$focused) Text("全名 :" + self.firstName + " " + self.lastName) } } } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值