我正在处理
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);
- }
- }
- });
谢谢..