从后面的字符串中删除破折号还是删除键?

阿尔萨兰

我有在第 5 位和第 12 位数字后添加破折号的代码,但是在删除这些数字时,按退格键后破折号不会被删除。删除最后一位后卡住了。

这是我从堆栈链接之一实现的代码。

EditText Cnic;
int maxLength = 15;
int len =0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

 Cnic = (EditText)findViewById(R.id.cnic_edtext);

    Cnic.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLength)});
    Cnic.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String str =  s.toString();
            if(s.length() == 5 || s.length() == 13){

                str += "-";
                Cnic.setText(str);
                Cnic.setSelection(str.length());
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

            String str =  s.toString();
            len = str.length();
        }
    });

}
阿尔萨兰

我使用图书馆解决了它 import tw.henrychuang.lib.AutoAddTextWatcher;

 EditText Cnic;
int maxLength = 15;
String str;
Button save;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

 Cnic = (EditText)findViewById(R.id.cnic_edtext);
 save = (Button)findViewById(R.id.save_btn);
    Cnic.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLength)});
    Cnic.setKeyListener(new DigitsKeyListener().getInstance("0123456789-"));


    Cnic.addTextChangedListener(new AutoAddTextWatcher(Cnic,
            "-",
            5, 12));


    save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
             str =  Cnic.getText().toString();

            Toast.makeText(MainActivity.this, "Cnic "+str, Toast.LENGTH_SHORT).show();

        }
    });



}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java删除字符串数组中的破折号

从Bash中的字符串末尾删除破折号

如何从字符串中删除'em'破折号?

从字符串中删除破折号,但当字符串被(az)包围时从中间删除

从pandas Dataframe中的混合dtype列中删除破折号字符串

Javascript Regex删除数字中破折号周围的空格而不是字符串

删除字符串python中的空格和破折号

如何使用c#删除字符串中的破折号(-)?

从R中的其他字符串中删除包含括号和破折号的子字符串

如何从字符串中删除除破折号以外的所有非字母数字字符?

如何从Python字符串中删除除空格和破折号以外的所有特殊字符?

如果结束字符串与给定字符串匹配,则在破折号之后删除字符串

如何在破折号后删除此字符串中的所有数字?

Python Regex:删除下划线和破折号,除非它们在字符串替换字典中

删除破折号(-)和第一个点(。)之间的字符串

如何用破折号分割字符串并删除任何外部空白?

如何从字符串中删除破折号(-),不包括 Java 中输入字母数字字符串中的数字

删除带有数字和字符串之间的破折号的子字符串

替换Java字符串中的破折号

字符串插补中的格式破折号

是否有一个用于从数字字符串中删除破折号而不删除前导零的功能?

Cloudformation从参数中删除破折号

从网格中删除破折号

从网址中删除多余的破折号

java - 如何使用正则表达式从字符串中删除破折号(-),除了java中的数字和单词之间?

删除文本字符串中破折号周围的前导和尾随空白然后将文本拆分为多列熊猫的有效方法

删除破折号,但不能删除连字符

删除字符串后面的所有内容

Sed:删除双破折号之前的所有字符,包括双破折号