Custom ListAdapter consistente en EditText pierde el foco llamado dos veces

Estoy haciendo una aplicación de comercio electrónico cuya lista de carro tiene un ListView personalizado que consiste en EditText . El EditText representa la cantidad del elemento. Estoy usando OnFocusChangeListener para detectar cuando un cliente está hecho cambiando la cantidad del artículo entonces la actualización del carro en el servidor. Todo está funcionando bien, sólo el onFocusChange se llama dos veces, es decir, me estoy poniendo false dos veces.

 viewHolder.etProductQuantity.setOnFocusChangeListener( new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean hasFocus) { if(!hasFocus){ // Updating the ProductList class's object to set the new quantity // Updating product quantity on server Log.d("Product Quantity", viewHolder.etProductQuantity.getText().toString() + b); } } }); 

Por lo tanto, la codificación se ejecuta dos veces lo que está creando problema.

Agregar la siguiente línea a su actividad en el manifiesto solucionó el problema:

  android:windowSoftInputMode="adjustPan" 

No estoy seguro de por qué.

Trate de mantener un indicador que se pierde el código de foco ejecutado una vez y luego nunca se ejecuta de nuevo:

 viewHolder.etProductQuantity.setTag(1); viewHolder.etProductQuantity.setOnFocusChangeListener( new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean hasFocus) { if(!hasFocus && ((Integer)view.getTag())==1){ // Updating the ProductList class's object to set the new quantity // Updating product quantity on server Log.d("Product Quantity", viewHolder.etProductQuantity.getText().toString() + b); view.setTag(0); }else{ view.setTag(1); } } }); 

Usted puede usar como esto:

 edt_sys_log_search.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if(actionId==EditorInfo.IME_ACTION_DONE){ //do calling WS } return false; } }); 

Y establezca la propiedad EditText como sigue:

 android:imeOptions="actionDone" singleLine="true" 

Llamará a WS cuando el usuario presione Hecho desde SoftKeyboard

  • Agregar un oyente a un botón dentro de un alerta de alerta personalizado bloquea mi aplicación
  • Cómo detectar los eventos de MediaPlayer de youtube desde un servicio
  • ¿Cómo detectar cuando el usuario pulsa la tecla "menú" en su dispositivo Android?
  • ¿Por qué ButterKnife usa un DebouncingOnClickListener para los métodos de @OnClick?
  • Uso de la instrucción Switch para controlar clics de botón
  • Acceso a WebView desde otra función en la clase MainActivity
  • Captura de View.setOnClickListener () mediante XML
  • ¿Es posible que cuando haga clic edittext mostrará mensaje de diálogo?
  • OnTouchListener en vista invisible
  • Detección de gestos fling en el diseño de la cuadrícula
  • Cómo obtener cambios específicos de ChangeListener en Realm
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.