如何使 EditText 接受格式输入:

Posted

技术标签:

【中文标题】如何使 EditText 接受格式输入:【英文标题】:How to make EditText accept input in format:如何使 EditText 接受格式输入: 【发布时间】:2020-07-25 18:42:43 【问题描述】:

车牌号(注册号)-2chars-2digit-2chars-4chars

我尝试了对这个资源进行了一些修改 Custom format edit text input ,但不幸的是我无法删除连字符(-)。只要有连字符(-),我就无法删除它。请帮助我找出问题所在。

【问题讨论】:

您面临的问题是什么?你能发布你的代码吗? 【参考方案1】:

您无法删除连字符,因为在ontextchanged 中,当您到达连字符位置时,您再次添加了连字符。

您应该通过添加文本或删除文本来区分是否需要连字符。

如果您通过删除文本到达连字符位置,您不想添加连字符。

您可以通过此代码if(before-count<0)查看

以下是您的工作示例

     editText.addTextChangedListener(new TextWatcher() 

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) 


                if ((editText.getText().length() + 1 == 3 || editText.getText().length() + 1 == 6 || editText.getText().length() + 1 == 9)) 
                    if(before-count<0)
                        editText.setText(editText.getText() + "-");
                        editText.setSelection(editText.getText().length());
                    
                
            

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) 
            // TODO Auto-generated method stub
        

        @Override
        public void afterTextChanged(Editable s) 
            // TODO Auto-generated method stub
        
    );

XML

 android:maxLength="13"

【讨论】:

以上是关于如何使 EditText 接受格式输入:的主要内容,如果未能解决你的问题,请参考以下文章

如何强制editText框格式化缩进替换文本?

如何以科学计数法启用用户输入到android edittext

Android实现EditText禁止输入换行符但可以根据内容自动换行的解决方法

如何使用android中的共享首选项将数据保存在editText中[重复]

如何使文本框只接受数字并用逗号格式化数字?

安卓开发者进来一下,安卓悬浮窗口开发有问,悬浮的EditText为啥无法获得焦点.悬浮窗口不管我