看看我的代码:
txt_HomeNo.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
boolean flag = true;
String eachBlock[] = txt_HomeNo.getText().toString().split("-");
for (int i = 0; i < eachBlock.length; i++) {
if (eachBlock[i].length() > 3) {
flag = false;
}
}
if (flag) {
txt_HomeNo.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL)
keyDel = 1;
return false;
}
});
if (keyDel == 0) {
if (((txt_HomeNo.getText().length() + 1) % 4) == 0) {
if (txt_HomeNo.getText().toString().split("-").length <= 3) {
txt_HomeNo.setText(txt_HomeNo.getText() + "-");
txt_HomeNo.setSelection(txt_HomeNo.getText().length());
}
}
a = txt_HomeNo.getText().toString();
} else {
a = txt_HomeNo.getText().toString();
keyDel = 0;
}
} else {
txt_HomeNo.setText(a);
}
}
电话号码的最大长度仅为 7。当我已经输入 3 位数字时,它会附加破折号(这就是我希望发生的情况),但我的问题是接下来的 3 位数字也附加破折号(像这样:511-871-
)...我的问题是如何使用带有破折号的下一个 4 位数字进行编码。请在这件事上给予我帮助。谢谢!
我想,我有简单的解决方案来做到这一点,请查看随附的屏幕截图
追加/后 2 和 5 位数即可获取 DOB。
Appending and Deleting both are working without cyclic problem.
editeTextDob.addTextChangedListener(new TextWatcher() {
int prevL = 0;
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
prevL = dob.getText().toString().length();
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
int length = editable.length();
if ((prevL < length) && (length == 2 || length == 5)) {
editable.append("/");
}
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)