Android:Space 使用文本观察器在编辑文本中每 10 位数字后
Android: Space after every 10 digit in edit text using text watcher
在android编辑文本中,如何分隔space输入的10位数字?我正在使用 android 文本观察器,我正在尝试在该字段中输入多个 10 位数字。当多个数字被复制并粘贴到字段中时,问题就出现了,而那个时候,它不需要那些 spaces。请让我知道一个解决方案,以便在从其他地方复制数字时允许在每 10 位数字后输入多个数字 space。
这对来自其他地方的 type 和 copy/paste 都有效。
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;
}
}
});
根据您的需要编辑并使用以下代码
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(" ", "");
在android编辑文本中,如何分隔space输入的10位数字?我正在使用 android 文本观察器,我正在尝试在该字段中输入多个 10 位数字。当多个数字被复制并粘贴到字段中时,问题就出现了,而那个时候,它不需要那些 spaces。请让我知道一个解决方案,以便在从其他地方复制数字时允许在每 10 位数字后输入多个数字 space。
这对来自其他地方的 type 和 copy/paste 都有效。
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;
}
}
});
根据您的需要编辑并使用以下代码
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(" ", "");