Android Edittext con detección automática de tipo de tarjeta de crédito

Estoy tratando con la opción de pago en android, Por dar una opción para hacer un pago con tarjeta de crédito, algunos de los usuarios pueden equivocadamente elegir diferentes tipos de tarjetas de crédito para otro número de tarjeta de crédito, así que decidí echar un vistazo a este problema a Auto detectar el tipo de tarjeta basado en el número introducido,

He encontrado Flipkart tener esto ya en su aplicación Android, aquí adjunto esa funcionalidad,

Androidedittext

Cómo hacer esto como una animación sucediendo mientras se cambia el tipo de tarjeta?

Sé para hacer un observador del texto y basado en la entrada para cambiar el tipo de tarjeta con una imagen drawableRight para EditText.

Pero hay que hacer algo de animación sobre drawableRight.

Ayuda apreciada ..!

De la ayuda de las respuestas anteriores y la sugerencia he logrado el resultado,

Aquí está la solución:

Crear una función para la creación de regex

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 }; 

Utilice este código debajo de 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, 0, imageArray[i], 0); cardtype = String.valueOf(i); } } } } @Override public void beforeTextChanged(CharSequence s, int start, 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, imageArray[i], 0); cardtype = String.valueOf(i); } } } else { creditcardnumberedittext.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.allcards, 0); } } }); 

Gracias..

No hay ninguna funcionalidad nativa para eso. TextWatcher establecer la clase EditText en EditText . Lo que hace es establecer un oyente en su campo ya medida que escribe le da un método para comprobar la entrada.

 yourEditText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { //Check your Credit Card Number here. } }); 

Usted estaría viendo el texto tal como está ingresado, verificando los primeros dígitos para coincidir con los códigos encontrados aquí:

http://www.stevemorse.org/ssn/List_of_Bank_Identification_Numbers.html

Esto se puede hacer con el oyente de TextWatcher que Murtaza Hussain ha señalado.

Revise el texto a través de:

 switch (s.charAt(0)){ case '4': // show visa symbol break; case '5': // show mastercard symbol break; ... 
  • Sugerencias de EditText y MultiAutoCompleteTextView
  • Android: hacer que AutoCompleteTextView despliegue a 2 líneas o más
  • Cierre el teclado al desplazarse en la lista desplegable de autocompletetextview en Android
  • ¿Cómo puedo implementar autocompletar con cursoradapter?
  • Cómo cambiar las teclas de método abreviado de Autocompletar de Control + Espacio en Eclipse para Android
  • Desactivación de la autocompletar para textarea y campos de entrada en Android Cordova-app
  • Cómo ocultar los recursos de android.R en Android Studio 1.3+ autocomplete
  • Android AutoCompleteTextView con datos de un servicio web, problemas para mostrar la lista de sugerencias
  • AutocompleteTextView de Android con ArrayAdapter y Filter
  • Desactivar autocompletar en Android
  • La entrada en los resultados de autocompletar de jQuery se activa al seleccionar del resultado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.