格式化 TextWatcher android
Format TextWatcher android
我的FourDigitCardFormatWatcher
每4个数字后加一个space。我想将 FourDigitCardFormatWatch
更改为以下格式 55555 5555 555 55.
如何确定5位数字后加space,4位数字后加space,3位数字后加space。
实际结果:4444 4444 4444
预期结果:44444 4444 444
像下面这样更改您的 replaceAll
语句:
processed = processed.replaceAll("(\d{5})(\d{4})(\d{3})(?=\d)*", " ");
这种对我有用,您可能需要更改它以满足您的要求。
希望对你有所帮助!
像这样编辑 class..
public class FourDigitCardFormatWatcher implements TextWatcher {
// Change this to what you want... ' ', '-' etc..
private final String char = " ";
EditText et_filed;
public FourDigitCardFormatWatcher(EditText et_filed){
this.et_filed = et_filed;
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
String initial = s.toString();
// remove all non-digits characters
String processed = initial.replaceAll("\D", "");
// insert a space after all groups of 4 digits that are followed by another digit
processed = processed.replaceAll("(\d{5})(\d{4})(\d{3})(?=\d)(?=\d)(?=\d)", " ");
//Remove the listener
et_filed.removeTextChangedListener(this);
//Assign processed text
et_filed.setText(processed);
try {
et_filed.setSelection(processed.length());
} catch (Exception e) {
// TODO: handle exception
}
//Give back the listener
et_filed.addTextChangedListener(this);
}
}
添加监听器
editText1.addTextChangedListener(new FourDigitCardFormatWatcher(editText1));
我的FourDigitCardFormatWatcher
每4个数字后加一个space。我想将 FourDigitCardFormatWatch
更改为以下格式 55555 5555 555 55.
如何确定5位数字后加space,4位数字后加space,3位数字后加space。
实际结果:4444 4444 4444
预期结果:44444 4444 444
像下面这样更改您的 replaceAll
语句:
processed = processed.replaceAll("(\d{5})(\d{4})(\d{3})(?=\d)*", " ");
这种对我有用,您可能需要更改它以满足您的要求。
希望对你有所帮助!
像这样编辑 class..
public class FourDigitCardFormatWatcher implements TextWatcher {
// Change this to what you want... ' ', '-' etc..
private final String char = " ";
EditText et_filed;
public FourDigitCardFormatWatcher(EditText et_filed){
this.et_filed = et_filed;
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
String initial = s.toString();
// remove all non-digits characters
String processed = initial.replaceAll("\D", "");
// insert a space after all groups of 4 digits that are followed by another digit
processed = processed.replaceAll("(\d{5})(\d{4})(\d{3})(?=\d)(?=\d)(?=\d)", " ");
//Remove the listener
et_filed.removeTextChangedListener(this);
//Assign processed text
et_filed.setText(processed);
try {
et_filed.setSelection(processed.length());
} catch (Exception e) {
// TODO: handle exception
}
//Give back the listener
et_filed.addTextChangedListener(this);
}
}
添加监听器
editText1.addTextChangedListener(new FourDigitCardFormatWatcher(editText1));