最近写类似需要像银行卡输入那样每4个字符空一格,网上看了很多都没有很好的解决索性自己写一个。主要思路就是活用beforeTextChanged()、onTextChanged()、afterTextChange()。代码测试过没有问题,可以在字符串中间任意位置添加删除字符。中间难点是光标位置,其实只是添加删除字符是没什么难度的。代码如下,贴出来方便以后自己查看~
String beforeStr = "";
String afterStr = "";
String changeStr = "";
int index = 0;
boolean changeIndex = true;
public void initListener() {
et.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
beforeStr = s.toString();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
afterStr = s.toString();
if (changeIndex)
index = et.getSelectionSt