Android:使用文本观察程序编辑文本时,每10位数字后留有空格

Android:使用文本观察程序编辑文本时,每10位数字后留有空格,android,android-edittext,textwatcher,Android,Android Edittext,Textwatcher,在android编辑文本中,如何按空格分隔输入的10位数字?我正在使用android文本观察程序,我正在尝试在字段中输入多个10位数的数字。当在字段中复制和粘贴多个数字时,问题就会出现,此时,它不会占用这些空格。请告诉我一个解决方案,以便在从其他位置复制数字时,允许在每10位数字后输入多个数字,并在数字后留有空格。这对从其他位置复制/粘贴的和都有效 yourEditText.addTextChangedListener(new TextWatcher() { private st

在android编辑文本中,如何按空格分隔输入的10位数字?我正在使用android文本观察程序,我正在尝试在字段中输入多个10位数的数字。当在字段中复制和粘贴多个数字时,问题就会出现,此时,它不会占用这些空格。请告诉我一个解决方案,以便在从其他位置复制数字时,允许在每10位数字后输入多个数字,并在数字后留有空格。

这对从其他位置复制/粘贴的都有效

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());

粘贴数字时会发生什么情况?请发布您所做的操作?您如何确定数字有10位数字,如果有国家代码前缀呢?复制-后文本更改(可编辑的s){if(s.length()>0&(s.length()%11)==0{final char c=s.charAt(s.length()-1);if(space==c{s.delete(s.length()-1,s.length());我在Textwatcher}if(s.length()>0&&(s.length()%11)==0){charc=s.charAt(s.length()-1);if(Character.isDigit(c)&&TextUtils.split(s.toString(),String.valueOf(space)).length它对键入和复制/粘贴都有效。您尝试过这个吗?@sneelcome。祝您好运。
String str = yourTxtView.getText().toString().replace(" ", "");