android: EditText 输入固定位数后光标自动移动到下一EditText
来源:互联网 发布:房屋设计图软件 编辑:程序博客网 时间:2024/05/21 10:11
类似于Windows输入IP地址的效果,输入三位后光标自动定位到下一格进行输入。
以下为布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <EditText android:id="@+id/editText1" android:layout_width="50dp" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="number" > <requestFocus /> </EditText> <EditText android:id="@+id/editText2" android:layout_width="50dp" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="number" /> <EditText android:id="@+id/editText3" android:layout_width="50dp" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="number" /> <EditText android:id="@+id/editText4" android:layout_width="50dp" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="number" /> </LinearLayout>
以下为.Java文件
package com.chuanchuan.edittextdemo; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; import android.app.Activity; public class MainActivity extends Activity { private EditText et1; private EditText et2; private EditText et3; private EditText et4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et1=(EditText) findViewById(R.id.editText1); et2=(EditText) findViewById(R.id.editText2); et3=(EditText) findViewById(R.id.editText3); et4=(EditText) findViewById(R.id.editText4); final EditText[] mArray = new EditText[] { et1,et2, et3, et4 }; for (int i = 0; i < mArray.length; i++) { final int j = i; mArray[j].addTextChangedListener(new TextWatcher() { private CharSequence temp; private int sStart; private int sEnd; @Override public void onTextChanged(CharSequence s, int start, int before, int count) { temp = s; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { sStart = mArray[j].getSelectionStart(); sEnd = mArray[j].getSelectionEnd(); if (temp.length() == 3 && (j == 0 || j == 1 || j == 2)) { mArray[j + 1].setFocusable(true); mArray[j + 1].setFocusableInTouchMode(true); mArray[j + 1].requestFocus(); } if (temp.length() > 3) { s.delete(sStart - 1, sEnd); int tSelection = sStart; mArray[j].setText(s); mArray[j].setSelection(tSelection); } } }); } } }
- android: EditText 输入固定位数后光标自动移动到下一EditText
- android:限制EditText输入位数
- EditText限制输入小数点后字符位数
- 在EditText移动光标
- Edittext 的光标移动
- 移动EditText光标到末位
- android的EditText移动光标位置
- Android EditText光标移动到文本框末尾
- Android EditText光标移动到文本框末尾
- Android EditText光标移动到文本框末尾
- 修改Android EditText光标,限制EditText的输入字数
- 自定义android EditText输入框光标样式
- android edittext 限制输入框小数位数
- android edittext 限制输入框小数位数
- android EditText限制输入框小数位数
- android edittext 限制输入框小数位数
- android edittext 限制输入框小数位数
- Android Edittext限制输入小数位数
- linux红黑树实现
- HDU 4704Sum(费马小定理+快速幂)
- jquery $.each() 探讨
- 正则表达式Pattern\Matcher
- GCC编译选项
- android: EditText 输入固定位数后光标自动移动到下一EditText
- 最常用的设计模式
- Android UI 之实现多级列表TreeView
- Hibernate 高级查询技巧——集合过滤与子查询
- 函数后面带有EX或者EXA等字样的含义
- Android 之 下拉框(Spinner)的使用(2)
- RadioGroup中多个RadioButton被选中的解决方法
- 详解Jquery deferred 对象
- 读博之《暗时间》