programacion - ¿Cómo se puede configurar un mensaje de error para el Spinner en Android?
spinner dinamico android studio (3)
Hay algunas soluciones en este hilo Creando un setError () para el Spinner :
El de EdmundYeung99 me funciona, o estás usando tu propio adaptador o no. Simplemente ponga el siguiente código en su función de validación:
TextView errorText = (TextView)mySpinner.getSelectedView();
errorText.setError("");
errorText.setTextColor(Color.RED);//just to highlight that this is an error
errorText.setText("my actual error text");//changes the selected item text to this
Pero, asegúrese de tener al menos un valor en el adaptador Spinner cuando esté realizando la verificación. Si no, como un adaptador vacío que espera ser poblado, haga que su adaptador obtenga una Cadena vacía:
ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, new String[]{""});
mySpinner.setAdapter(adapter);
Me gustaría poder llamar a un código como este, similar a cómo se establece setError en un TextView:
spinner.setError("Error message");
Sin embargo, setError
solo funciona para un EditText, no para un Spinner.
Quiero notificar al usuario si el campo de giro no está seleccionado. ¿Cómo puedo realizar dicha notificación sin usar un Toast ?
La clase de Spinner devolverá una vista de texto cuando uses getSelectedView()
. Así que puedes usar setError()
indirectamente.
((TextView)spinner.getSelectedView()).setError("Error message");
Los resultados deben ser como ...
¡Espero que sea de ayuda!
Aquí hay una solución que utiliza un TextView oculto para que aparezca un mensaje emergente, además del icono de error en la ruleta. Cuando está en un estado de error, el Spinner se ve así:
Cuando no está en un estado de error, se ve así.
La solución completa se documenta aquí: https://.com/a/29956372/3063884