在android编辑文本中,如何用空格分隔输入的10位数字?我正在使用android text watcher,并且尝试在字段中输入多个10位数字。当在字段中复制并粘贴多个数字时,就会出现问题,而此时并没有占用这些空格。请让我知道一个解决方案,以便在从其他地方复制数字时,允许在每10位数字后输入多个数字,并在每个数字后留一个空格。
答案 0 :(得分:0)
这将适用于类型和在其他地方复制/粘贴。
yourEditText.addTextChangedListener(new TextWatcher() {
private static final char space = ' ';
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
int pos = 0;
while (true) {
if (pos >= s.length()) break;
if (space == s.charAt(pos) && (((pos + 1) % 11) != 0 || pos + 1 == s.length())) {
s.delete(pos, pos + 1);
} else {
pos++;
}
}
pos = 10;
while (true) {
if (pos >= s.length()) break;
final char c = s.charAt(pos);
if (Character.isDigit(c)) {
s.insert(pos, "" + space);
}
pos += 11;
}
}
});
答案 1 :(得分:0)
根据需要编辑和使用以下代码
StringBuilder s;
s = new StringBuilder(yourTxtView.getText().toString());
for(int i = 10; i < s.length(); i += 10){
s.insert(i, " "); // this line inserts a space
}
yourTxtView.setText(s.toString());
当需要获取不带空格的字符串时,请执行以下操作:
String str = yourTxtView.getText().toString().replace(" ", "");