Android Edittext,可自动检测信用卡类型

我正在处理 android中的付款选项,通过选择使用信用卡付款,一些用户可能会错误地为其他信用卡号码选择不同的信用卡类型,所以我决定查看此问题根据输入的号码自动检测卡片类型,

我发现Flipkart已经在他们的Android应用程序中有这个,在这里我附加了这个功能,

如何在改变卡片类型的同时进行动画播放?

我知道要创建一个文本观察器,并根据输入更改带有EditText的drawableRight图像的卡片类型.

但需要在drawableRight上做一些动画.

帮助赞赏..!

解决方法

在上述答案和建议的帮助下,我取得了成果,

这是解决方案:

为正则表达式创建一个函数

public static ArrayList<String> listofPattern()
{
    ArrayList<String> listofPattern=new ArrayList<String>();

    String ptVisa = "^4[0-9]$";

    listofPattern.add(ptVisa);

    String ptMasterCard = "^5[1-5]$";

    listofPattern.add(ptMasterCard);

    String ptdiscover = "^6(?:011|5[0-9]{2})$";

    listofPattern.add(ptdiscover);

    String ptAmeExp = "^3[47]$";

    listofPattern.add(ptAmeExp);

    return listofPattern;
}

Integer[] imageArray = { R.drawable.visa,R.drawable.master,R.drawable.disnet,R.drawable.ae };

在addTextChangedListener中使用下面的代码

creditcardnumberedittext.addTextChangedListener(new TextWatcher()
    {

        @Override
        public void onTextChanged(CharSequence s,int start,int before,int count)
        {
            String ccNum = s.toString();

            if(ccNum.length()>=2)
            {
                for (int i = 0; i < listofPattern.size(); i++)
                {
                    if (ccNum.substring(0,2).matches(listofPattern.get(i)))
                    {
                        creditcardnumberedittext.setCompoundDrawablesWithIntrinsicBounds(0,imageArray[i],0);

                        cardtype = String.valueOf(i);
                    }
                }
            }

        }

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

        }

        @Override
        public void afterTextChanged(Editable s)
        {               

            if (!creditcardnumberedittext.getText().toString().equalsIgnoreCase(""))
            {
                for (int i = 0; i < listofPattern.size(); i++)
                {
                    if (creditcardnumberedittext.getText().toString().matches(listofPattern.get(i)))
                    {
                        creditcardnumberedittext.setCompoundDrawablesWithIntrinsicBounds(0,0);

                        cardtype = String.valueOf(i);
                    }
                }
            }
            else
            {
                creditcardnumberedittext.setCompoundDrawablesWithIntrinsicBounds(0,R.drawable.allcards,0);
            }
        }
    });

谢谢..

相关文章

Android 通过adb shell命令查看内存,CPU,启动时间,电量等...
Monkey Android app稳定性测试工具之Monkey使用教程 by:授客...
Android 常见adb命令 by:授客 QQ:1033553122 1、 查看所有已...
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...