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